P1059 明明的隨機數(C C )

2021-10-02 14:31:55 字數 1600 閱讀 4307

明明想在學校中請一些同學一起做一項問卷調查,為了實驗的客觀性,他先用計算機生成了n個1到1000之間的隨機整數(n≤100),對於其中重複的數字,只保留乙個,把其餘相同的數去掉,不同的數對應著不同的學生的學號。然後再把這些數從小到大排序,按照排好的順序去找同學做調查。請你協助明明完成「去重」與「排序」的工作。

輸入有兩行,第1行為1個正整數,表示所生成的隨機數的個數n

第2行有n個用空格隔開的正整數,為所產生的隨機數。

輸出也是兩行,第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

其實這題用stl中的set(集合)做是再簡單不過了

set,顧名思義,就是數學上的集合——每個元素最多隻出現一次,並且set中的元素已經從小到大排好序。

標頭檔案:#include < set >

常用操作 :

begin()    返回set容器的第乙個元素的 位址

end()      返回set容器的最後乙個元素 位址

clear()    刪除set容器中的所有的元素

empty()     判斷set容器是否為空

max_size()   返回set容器可能包含的元素最大個數

size()      返回當前set容器中的元素個數

erase(it) 刪除迭代器指標it處元素

insert(a) 插入某個元素

#include

#include

using

namespace std;

intmain()

cout

int>

::iterator it=st.

begin()

;it!=st.

end(

);it++

) cout<<

*it<<

" ";

return0;

}

最後輸出也可如下

while

(!s.

empty()

)

直接開乙個大的陣列,如果陣列num[i]=1,代表有i這個數

實際運用了桶排序的思想。

#include

intmain()

,x,count=0;

scanf

("%d"

,&n)

;for

(int i=

1;i<=n;i++

)printf

("%d\n"

,count)

;for

(x=1

;x<=

1000

;x++)if

(num[x]==1

)printf

("%d "

,x);

return0;

}

P1059 明明的隨機數

題目描述 明明想在學校中請一些同學一起做一項問卷調查,為了實驗的客觀性,他先用計算機生成了n個1到1000之間的隨機整數 n 100 對於其中重複的數字,只保留乙個,把其餘相同的數去掉,不同的數對應著不同的學生的學號。然後再把這些數從小到大排序,按照排好的順序去找同學做調查。請你協助明明完成 去重 ...

P1059 明明的隨機數

題目描述 明明想在學校中請一些同學一起做一項問卷調查,為了實驗的客觀性,他先用計算機生成了nn個11到10001000之間的隨機整數 n 100 n 100 對於其中重複的數字,只保留乙個,把其餘相同的數去掉,不同的數對應著不同的學生的學號。然後再把這些數從小到大排序,按照排好的順序去找同學做調查。...

P1059 明明的隨機數

明明想在學校中請一些同學一起做一項問卷調查,為了實驗的客觀性,他先用計算機生成了nn個11到10001000之間的隨機整數 n 100 n 100 對於其中重複的數字,只保留乙個,把其餘相同的數去掉,不同的數對應著不同的學生的學號。然後再把這些數從小到大排序,按照排好的順序去找同學做調查。請你協助明...