15个猴子围成一圈选大王,依次1-7循环报数,报到7的猴子被淘汰,直到最后一只猴子成为大王。问:哪只猴子会成为大王?
public static void main(String[] args) {//定义布尔类型的数组表示15只猴子boolean[] b=new boolean[15];//初始化数组的元素值都为true//遍历数组依次传值给元素//true表示未淘汰 false表示已淘汰for(int i=0;i<b.length;i++) {b[i]=true;}//变量---控制猴子剩余数int monkeyLeft=15;//变量---表示猴子报数int num=0;//变量---数组下标的挪动int index=0;//操作while循环while(monkeyLeft>1) {//保证最后一定剩余一只猴子//判断猴子是否已经被淘汰if(b[index]) {//猴子还未被淘汰//报数num++;//报数为7的猴子需要被淘汰if(num==7) {//数组布尔值变为falseb[index]=false;//猴子剩余数减一monkeyLeft--;//保证循环报数num=0;}}//挪动数组下标//跳到下一只猴子index++;//保证围成一圈//最后一个下标回到第一个下标if(index==15) {index=0;}}//遍历数组for(int i=0;i<b.length;i++) {//判断元素是否为trueif(b[i]) {//具体是哪只猴子System.out.println(i+1);}}}
本文发布于:2024-01-30 15:10:23,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170659862720889.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |