1. 程式人生 > >1-100自然數 找出缺少的數(…

1-100自然數 找出缺少的數(…

現有1~100共一百個自然數,已隨機放入一個有98個元素的陣列a[98]。要求寫出一個儘量簡單的方案,找出沒有被放入陣列的那2個數,並在螢幕上列印這2個數。注意:程式不用實現自然數隨機放入陣列的過程。

檢視複製到剪下板列印
Java程式碼  收藏程式碼
  1. int[] b = newint[]{....存入98個隨機的1~100的整數};     
  2. int[] a = newint[100];     
  3. for(int t : b)     
  4.   a[t-1]=t;     
  5. for(int t=0; t < a.length; t++)     
  6.   if(a[t]==0)     
  7.       System.out.println(t+1);    
  8. int[] b = newint[]{....存入98個隨機的1~100的整數};  
  9. int[] a = newint[100];  
  10. for(int t : b)  
  11.   a[t-1]=t;  
  12. for(int t=0; t < a.length; t++)  
  13.   if(a[t]==0)  
  14.       System.out.println(t+1);  


這個是計數法,需要1次掃描原始陣列,一次掃描結果陣列。

其它的需要排序的,都是錯誤的演算法,因為排序本身並沒有給解決問題帶來方便,反倒是增加了大量的計算和比較