首页 > 学院 > 开发设计 > 正文

蓝桥杯 - 算法训练 明明的随机数

2019-11-06 07:20:57
字体:
来源:转载
供稿:网友
算法训练 明明的随机数题目:问题描述  明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤100),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。然后再把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作。输入格式  输入有2行,第1行为1个正整数,表示所生成的随机数的个数:  N  第2行有N个用空格隔开的正整数,为所产生的随机数。输出格式  输出也是2行,第1行为1个正整数M,表示不相同的随机数的个数。第2行为M个用空格隔开的正整数,为从小到大排好序的不相同的随机数。样例输入1020 40 32 67 40 20 89 300 400 15样例输出815 20 32 40 67 89 300 400题目来源  计13李震摘编自NOip06PJ01分析:没说明数据规模,逻辑不复杂直接暴力。代码在此:
#include<stdio.h>#define SIZE 100000	//题目没说明数据,设他为100000 int main () {		int n;	int num[SIZE];	int i,j; 	int temp;	int s = 0;		for(i = 0; i < SIZE; i ++){	//初始化 		num[i] = 0;	//所以随机数都为正整数 	}		scanf("%d", &n);	for(i = 0; i < n; i ++){		scanf("%d", &temp);		if(num[temp] == 0){			num[temp] = 1;			s ++;		}	}		PRintf("%d/n",s);	for(i = 0; i < SIZE; i ++){		if(num[i] == 1)			printf("%d ",i);	}		return 0;	}
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表