- 输入
- 输入有2行,第1行为1个正整数,表示所生成的随机数的个数:
N
第2行有N个用空格隔开的正整数,为所产生的随机数。
- 输出
输出也是2行,第1行为1个正整数M,表示不相同的随机数的个数。第2行为M个用空格隔开的正整数,为从小到大排好序的不相同的随机数。
思路
由于数据不大,采用用空间换时间的做法
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <stdlib.h> #define MAXSIZE 1000+1 int main() { int arr[MAXSIZE]; memset(arr,0,sizeof(arr)); int N,i,temp; int Num=0; scanf("%d",&N); for(i=0;i<N;i++) { scanf("%d",&temp); if(arr[temp]==0) { arr[temp]=1; Num++; } } printf("%d\n",Num); for(i=0;i<MAXSIZE;i++) { if(arr[i]) printf("%d ",i); } printf("\n"); }
时间: 2024-10-25 06:12:13