问题描述
- JAVA:有500个小朋友拉成一个圈,从其中一个小朋友开始
-
JAVA:有500个小朋友拉成一个圈,从其中一个小朋友开始一次编号1-500,从1号小朋友开始循环1-3报数,数到3的小朋友就退出。编写一个java应用程序,计算出最后一个小朋友的号码是多少? 求大神详细步骤及解释
解决方案
解决方案二:
以前为了准备比赛,写过这样的题目。用一个boolean数组去管理所有小朋友,false表示退出的小伙伴,true表示留下来的。代码不知道丢那了。挺简单的,加油!
解决方案三:
猴子选大王——CSharp数组猴子选大王——CSharp数组
解决方案四:
最基本的实现,没有考虑优化
package cn.baokx.test.tmp;
public class Test {
public static void main(String[] args) {
//模拟小朋友,true代表退出
boolean [] array = new boolean[500];
//报数脚标
int foot = 1;
//退出人数计数器
int out_num = 0;
while(true){
for (int i = 0; i < array.length; i++) {
if(out_num==499){
System.out.println("最后一位小朋友的编号是:"+(i+1));
return;
}
if(!array[i]){
if(foot==3){
array[i] = true;
foot=1;
out_num++;
}else{
foot++;
}
}
}
}
}
}
时间: 2024-11-03 22:09:06