約瑟夫環問題(100圍坐一圈報數,報3出圈)


100個人編號1-100,圍坐一圈,從1號開始進行1,2,3報數,誰報數為3,就離開圈子,剩下的人繼續報1,2,3,報數為3的出圈。。。

請寫一段程序,計算最后一個留下來的人,他的編號

 1 package com.ycl.test;
 2 
 3 import java.util.ArrayList;
 4 import java.util.List;
 5 
 6 public class Test1 {
 7     public static void main(String[] args) {
 8         int count = 0;
 9         List<Integer> list = new ArrayList<Integer>();
10         for (int i = 1; i <= 100; i++) {
11             list.add(i);
12         }
13         while (list.size() > 0) {
14             for (int i = 0,j = list.size();i<j; i++) {
15                 ++count;
16                 if(count==3){
17                     count=0;
18                     list.remove(i);
19                     --i;
20                     --j;
21                     continue;
22                 }
23             }
24             if(list.size()==1){
25                 System.out.println("Last Number:"+list.get(0));
26                 break;
27             }
28         }
29     }
30 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM