讨论 / c++ 题解 明明的随机数
linchenzhi 2018-11-28 22:32:54
点我顶贴 收藏 删除
只要21行

#include<iostream>

using namespace std;

int main()

{

int n;

int num[1001]={0},k;

int result=0;

int i;

cin>>n;

for(i=1;i<=n;i++)

{

cin>>k;

if(num[k]==0) result++;

num[k]++;

}

cout<<result<<endl;

for(i=1;i<=1000;i++)

if(num[i]) cout<<i<<" ";

cout<<endl;

return 0;

}

#1 yangziwen@2018-12-06 23:19:09
回复 删除
#include<bits/stdc++.h>

using namespace std;

int a[105];

int main(){

int n;

cin>>n;

for(int i=1;i<=n;i++)cin>>a[i];

sort(a+1,a+1+n);

int s=unique(a+1,a+1+n)-a-1;

cout<<s<<endl;

for(int i=1;i<=s;i++)cout<<a[i]<<" ";

return 0;

}

只要十三行

#2 15503430807@2018-12-09 20:23:02
回复 删除
都是大佬啊,前辈厉害,请多多指教额。
#3 操码哥@2019-02-26 17:47:51
回复 删除
没有用其他库,桶排序算法,只要19行

#include <iostream>

using namespace std;

int a[101],N,count=0;

/* run this program using the console pauser or add your own getch, system("pause") or input loop */

void radix_sort(int*a,int len,int max){

int*b =new int[max+1];//1创建临时数组,数组大小取决于待排元素中最大元素的值。

for(int i=0;i<=max;i++) b[i]=-1;// 2初始化临时数组

for(int i=0;i<len;i++) b[a[i]]=a[i];//3 排序

for(int i=0;i<=max;i++) if(b[i]!=-1) count++;

cout<<count<<endl;

for(int i=0;i<=max;i++) if(b[i]!=-1) cout<<b[i]<<" ";

}

int main(int argc, char** argv) {

cin>>N;

for(int i=0;i<N;i++) cin>>a[i];

radix_sort(a,N,1000);

return 0;

}

#4 lijiajia@2019-03-24 20:41:12
回复 删除
怎样输出随机数?
#5 2017beijiang99@2019-04-26 22:09:20
回复 删除
c++直接压成几行;4~5行吧。。。
#6 2017beijiang99@2019-04-26 22:11:43
回复 删除
随机数用rand()

不过这题不用啊

这题简单排序就可以了

#7 rt@2019-05-08 20:54:41
回复 删除
var

n,i,x,sum:longint;

a:array[1..1000] of longint;

begin

readln(n);

for i:=1 to n do

begin

read(x);

if a[x]=0 then inc(sum);

inc(a[x]);

end;

writeln(sum);

for i:=1 to 1000 do

if a[i]<>0 then write(i,' ');

end.

查看更多回复
提交回复