PID1 / 明明的随机数
生活随笔
收集整理的這篇文章主要介紹了
PID1 / 明明的随机数
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
明明的隨機數☆
題目描述
明明想在學校中請一些同學一起做一項問卷調查,為了實驗的客觀性,他先用計算機生成了N個1到1000之間的隨機整數(N≤100),對于其中重復的數字,只保留一個,把其余相同的數去掉,不同的數對應著不同的學生的學號。然后再把這些數從小到大排序,按照排好的順序去找同學做調查。請你協助明明完成“去重”與“排序”的工作。
輸入格式
輸入有2行,第1行為1個正整數,表示所生成的隨機數的個數:
N
第2行有N個用空格隔開的正整數,為所產生的隨機數。
輸出格式
輸出也是2行,第1行為1個正整數M,表示不相同的隨機數的個數。第2行為M個用空格隔開的正整數,為從小到大排好序的不相同的隨機數。
數據輸入
10
? ? ? 20 40 32 67 40 20 89 300 400 15
輸出
8
? ? ? 15 20 32 40 67 89 300 400
?
AC代碼:
#include<iostream> #include<cstdio> #include<algorithm> using namespace std; int main() {int N,i,j,a[110];int s[1010]={0};int b[110]={0};//存放去重之后的數 int c[110]={0};//存放除0除重之后的數,輸出 scanf("%d",&N);for(i=0;i<N;i++){scanf("%d",&a[i]);s[a[i]]++; //記錄數字出現的次數 }sort(a,a+N);for(i=0;i<N;){if(s[a[i]]==1){b[i]=a[i];i++;}else if(s[a[i]]>1){b[i]=a[i];i+=s[a[i]];}}j=0;for(i=0;i<N;i++)if(b[i])c[j++]=b[i];printf("%d\n",j);for(i=0;i<j-1;i++)printf("%d ",c[i]);printf("%d\n",c[j-1]);return 0; }?
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的PID1 / 明明的随机数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 为什么需要MiniDao? 新持久层 3
- 下一篇: UI标签库专题三:JEECG智能开发平台