逢3退1的Java算法(雙向迴環鏈表算法)

package test;

public class Cout3Quit {

   public static void main(String[] args)
   {
    int n=1;
   
       boolean[] arr = new boolean[n]; // 創建一個布爾型數組
       int contNum = 0; // 數數,計算數了多少個,數到3就退1個
       int index = 0; // 第幾個位置,數到的位置
       int arrlength = arr.length; // 數字隊列還有多少個
       System.out.println(arr[arrlength-1]);
       for (int i = 0; i < arr.length; i++)
       {
           arr[i] = true; // 把數組的值得全部置爲true
       }
       while (arrlength > 1) // 留下最後一個
       {
           if (arr[index] == true)
           {
               contNum++; // 從1開始數
               if (contNum == 3) // 從1開始的,數到3就是第三個數字了
               {
                   arr[index] = false; // 數到第三個數,把它的值變爲false
                   arrlength--; // 數組長度減去1
                   contNum = 0; // 重新數數
               }
           }
           index++; // 每判斷一個,加1
           if (index == arr.length) // 判斷是否到了最後的數字,到了,重新從0開始
           {
               index = 0;
           }
       }
       // 打印數組中有true值的那個下標值,即最後那個是第幾個
       for (int j = 0; j < arr.length; j++)
       {
           if (arr[j] == true)
           {
               System.out.println("最後留下來的是第"+String.valueOf(j+1)+"個");
           }
       }
   }
}

<script type=text/javascript charset=utf-8 src="http://static.bshare.cn/b/buttonLite.js#style=-1&uuid=&pophcol=3&lang=zh"></script> <script type=text/javascript charset=utf-8 src="http://static.bshare.cn/b/bshareC0.js"></script>
閱讀(699) | 評論(0) | 轉發(0) |
0

上一篇:沒有了

下一篇:海量數據的刪除策略

給主人留下些什麼吧!~~
評論熱議
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章