约瑟夫环问题(100围坐一圈报数,报3出圈)

Posted fengqixueluo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了约瑟夫环问题(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 }

 

以上是关于约瑟夫环问题(100围坐一圈报数,报3出圈)的主要内容,如果未能解决你的问题,请参考以下文章

约瑟夫环问题

约瑟夫问题

约瑟夫环

详解约瑟夫环问题

约瑟夫环问题的思考

约瑟夫环问题求解