题目要求如下:
有N个小朋友围成一圈做游戏,从第一个小朋友起以一开始报数,报到3的小朋友离开游戏,
剩下小朋友继续从一开始报数,依次类推循环之剩下最后一人。
问:所剩下的人在原来的圈子排第几位置?用Java 编写代码
程序如下:
public class ShowNum {
public static void main(String[] args) {
int[] arrayNum=new int[14];
int outNum=0;
int j=1;
int n=0;
for (int i = 0; i < arrayNum.length; i++) {
arrayNum[i]=i+1;
}
while(outNum<arrayNum.length) {
if(arrayNum[(j-1)%arrayNum.length]!=-1){
n++;
if(n==3){
n=0;
outNum++;
System.out.print(arrayNum[(j-1)%arrayNum.length]+" ");
arrayNum[(j-1)%arrayNum.length]=-1;
}
}
j++;
}
}
}
本文介绍了一个典型的约瑟夫环问题,并通过Java代码实现了该问题的解决方案。具体来说,程序模拟了N个小朋友围成一圈按规则淘汰的过程,直至最后剩下一人。代码使用了一维数组来表示小朋友的状态。

1571

被折叠的 条评论
为什么被折叠?



