5.明明的随机数(桶排序经典例题)
2016-02-22 16:29
267 查看
题目描述 Description
明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤100),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。然后再把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作。
输入描述 Input
Description
有2行,第1行为1个正整数,表示所生成的随机数的N个数:
第2行有N个用空格隔开的正整数,为所产生的随机数
输出描述 Output
Description
第1行为1个正整数M,表示不相同的随机数的个数。第2行为M个用空格隔开的正整数,为从小
到大排好序的不相同的随机数。
样例输入 Sample
Input
10
20 40 32
67 40 20 89 300 400 15
样例输出 Sample
Output
8
15 20 32
40 67 89 300 400
源代码如下:
明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤100),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。然后再把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作。
输入描述 Input
Description
有2行,第1行为1个正整数,表示所生成的随机数的N个数:
第2行有N个用空格隔开的正整数,为所产生的随机数
输出描述 Output
Description
第1行为1个正整数M,表示不相同的随机数的个数。第2行为M个用空格隔开的正整数,为从小
到大排好序的不相同的随机数。
样例输入 Sample
Input
10
20 40 32
67 40 20 89 300 400 15
样例输出 Sample
Output
8
15 20 32
40 67 89 300 400
源代码如下:
#include
int a[1001];
int n;
int b[1001];
int main()
{
int k;
scanf("%d",&n);
for(int i=1;i<=n;++i)
{
scanf("%d",&k);
a[k]++;
} int t=0;
for(int i=1;i<=1000;++i)
if(a[i]!=0) b[++t]=i;
printf("%d\n",t); for(int i=1;i<=t;++i) printf("%d ",b[i]); }
相关文章推荐
- 5.明明的随机数(桶排序经典例题)
- 5.明明的随机数(桶排序经典例题)
- 5.明明的随机数(桶排序经典例题)
- Android中的网络管理源码分析--netd
- Codeforces Round #343 (Div. 2)
- android 相机和相册获取相片剪裁报错问题解决,机型也解决
- 对java堆、栈的理解
- NSJSONSerialization-JSON数据与NSDictionary和NSArray之间的转化
- 关于内存泄露问题
- java之字符串
- HDU 1203 I NEED A OFFER!(01背包)
- Arduino中数据类型转换 float/double转换为char 亲测好使,dtostrf()函数
- Arduino中数据类型转换 float/double转换为char 亲测好使,dtostrf()函数
- Liua_第8 章 编译·运行·调试
- RSA加密介绍
- iOS事件(触摸,移动,晃动)
- Smail学习笔录
- Nginx隐藏版本号
- Web3D
- C++构造函数初始化列表的优点