选队长游戏训练任务
今天同学们相约一起爬山游玩,为了更好的进行这场活动,大家准备推举 一个人作为出游的临时队长。为了体现合理公平,大家提出了一个比较有趣的 规则。所有人围成一圈,顺序排号。从第一个人开始报数(从 1 到 3 报数), 凡报到 3 的人退出圈子,剩下的人继续报数,最后留下的当选为队长。 请你通过编写程序,求出一组人中的队长是原来第几位同学。
代码如下:
public class Class5_6 {
public static void main(String[] args) {
//定义一个数组,存储成员的编号
int[] nums = {1,2,3,4,5,6};
int i = 0;//数组循环变量
int numberOff = 0;//报数
int count = nums.length;//计数
while(true){
//判断元素是否为0,是则跳过
if(nums[i] != 0){
numberOff++;//报数
if(numberOff == 3){
count--;//累加是第几次数到3
if(count == 1){
System.out.println("队长是:" + nums[i]);//如果是最后一次数到3,则输出成员编号
break;
}else{
nums[i] = 0;//将元素置零排除
numberOff = 0;//重置报数
}
}
}
//当循环到数组末尾时重置下标
if(i<nums.length-1){
i++;
}else{
i = 0;
}
}
}
}
运行结果: