package com.xunhuan;
public class Test1_7 {
public static void main(String[] args) {
// TODO Auto-generated method stub
boolean []a = new boolean [10];
for (int i = 0; i < a.length; i++) {
a[i] = true;
}
int l = 10;//10个人
int count = 0,j = 0;
while(l > 1){
if(a[j] == true){
count++;
if(count == 3){//数到3的踢出去
count = 0;
a[j] = false;
l--;
}
}
j++;
if(j== 10){
j = 0;
}
}
for(int i = 0; i < 10;i++){
if(a[i] == true){
System.out.println("原排在第"+(i+1)+"位的人留下");
}
}
}
}
有10(100人或者n个)个人围成一圈,从第一个人开始报数(报1、2、3),只要报3的人就出去, 然后不停的循环报数,直到最后剩下一个人,计算出这个人最开始的位置。其实就是约瑟夫环问题
最新推荐文章于 2022-11-23 20:40:02 发布