欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

洛谷P1059明明的随机数

程序员文章站 2022-05-13 22:47:35
...

有去重效果的桶,这里是取巧的特殊解法。如果是需要这些数据进行其他操作的话,还需要加一个循环将数字(即下标)拷出来。做法也很简单,我也写在里面了(不过还没有机会进行测试)。

#include<iostream>
using namespace std;
bool ss[1005]={0};//由于待排序数字的范围在1-1000内,1005够了
int main(){
    int n; int A;
    cin>>n;
    for(int i=0;i<n;i++)//输入
    {
        cin>>A;
        ss[A]=1;//设置标记
    }
    int ans=0;//计数器,也是最后的答案
    for(int i=0;i<1005;i++)//注意要将整个数组完全遍历一遍才可以(其实在1-1000内就行)
        if(ss[i]) ans++;//求共出现过几个数字
        /* int f1=0;int s1[1005]={0};
			for(int i=0;i<n;++i){
			if(ss[i])s1[f1++]=i;
			}
		*/
    cout<<ans<<endl;
    for(int i=0;i<1005;i++)while(1);
         if(ss[i])cout<<i<<" ";//输出符合条件的数字
    return 0;
}