隨筆-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 閱讀(145) 評論(0)  編輯  收藏 所屬分類: 算法/數據結構

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


          網站導航:
           

          主站蜘蛛池模板: 黄浦区| 海晏县| 米脂县| 博兴县| 浦县| 乐平市| 镇沅| 吴堡县| 沧州市| 九台市| 桐城市| 肥城市| 临安市| 保康县| 榆树市| 通渭县| 卫辉市| 镶黄旗| 建水县| 南昌市| 陇南市| 丹阳市| 罗城| 龙州县| 靖江市| 什邡市| 保定市| 东兴市| 观塘区| 横峰县| 巫山县| 道真| 清流县| 化州市| 东宁县| 湘阴县| 建始县| 临湘市| 巩义市| 古田县| 德清县|