2017年10月21日 星期六

[C_AR20-易] 檢查數值是否有重複(C++)

[C_AR20-易] 檢查數值是否有重複

問題描述 :
給予一個由1到N的所有整數構成的數列,不依大小排列。 寫一函數檢查此數列是否每個數值只出現一次。

輸入說明 :
輸入分為兩行,第一行是一個介於1與128間的正整數,代表第二行中數列中的數字個數。
第二行是由空白鍵分隔開的數字序列,不超過128個數。每一個數值介於1到序列數字個數的整數。
輸出說明 :
若是每個數字剛好只出現一次則輸出1,輸出0表示其中有重複的數字。

範例 :

Sample Input:Sample Output:
8
1 4 6 2 3 5 8 7
1
  1. #include <iostream>  
  2. using namespace std;  
  3.   
  4. int main() {  
  5.     // [C_AR20-易] 檢查數值是否有重複  
  6.     int n;  
  7.     cin >> n;  
  8.     int num[n];  
  9.     int count[2000000];  
  10.     int cou = 0;  
  11.     for(int i = 0;i < 2000000;i++)  
  12.     {  
  13.         count[i] = 0;  
  14.     }  
  15.     for(int i = 0;i < n;i++)  
  16.     {  
  17.         cin >> num[i];  
  18.         if(count[num[i]]==0)  
  19.         {  
  20.             count[num[i]]++;  
  21.         }  
  22.     }  
  23.     for(int i = 0;i < 2000000;i++)  
  24.     {  
  25.         if(count[i]==1)  
  26.         {  
  27.             cou++;  
  28.         }  
  29.     }  
  30.     if(cou == n)  
  31.     {  
  32.         cout << "1" << endl;  
  33.     }  
  34.     else  
  35.     {  
  36.         cout << "0" << endl;  
  37.     }  
  38.       
  39.       
  40.     return 0;  
  41. }  

沒有留言:

張貼留言