隨筆-48  評論-26  文章-0  trackbacks-0
             問題:
                      有17個人圍成一圈(編號0~16),從第0號的人開始從1報數,凡報到3的倍數的人離開圈子,
                      然后再數下去,直到最后只剩下一個人為止,問此人原來的位置是多少號?

            
          int [] people = new int[17];
              
          int lastPeople = 0;
              
          public void getTheLastPeople(){       
                  
          for(int i = 0; i < people.length; i++){
                      people[i] 
          = i+1;
                  }
                  
          int count = 0;
                  
          int countLast = 0;
                  
          int j = 0;
                  
          while(true){
                      
          for(j = 0; j < people.length; j++){               
                          
          if(people[j] != 0){
                              count
          ++;
                              people[j] 
          = count;
                              System.out.println(
          "people[" + j + "] = " + people[j]);
                              
          if (people[j] % 3 == 0) {
                                  people[j] 
          = 0;
                                  countLast
          ++;
                                  
          if(countLast == 17){
                                      lastPeople 
          = j;
                                      
          return;
                                  }
                              }
                          }
                      }           
                  }
              }
          posted on 2009-09-26 14:35 Worker 閱讀(151) 評論(0)  編輯  收藏 所屬分類: 算法/數據結構

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           

          主站蜘蛛池模板: 驻马店市| 长岭县| 蒲江县| 西贡区| 阿坝| 桂阳县| 平塘县| 宁安市| 习水县| 莒南县| 都匀市| 北辰区| 扶余县| 科技| 莆田市| 宜春市| 祁阳县| 洪湖市| 富平县| 富蕴县| 太原市| 保德县| SHOW| 甘孜| 洪雅县| 鄂州市| 海城市| 保亭| 普兰县| 崇仁县| 长武县| 界首市| 汉阴县| 忻州市| 资中县| 日喀则市| 海兴县| 渝中区| 斗六市| 涟源市| 临洮县|