500个人手拉手,数3退1,求最后一个人原来在那个位置
来源:互联网 发布:腾讯 数据 移动 打脸 编辑:程序博客网 时间:2024/05/22 01:50
题目是:有500个人手拉着手,从第一个开始数,1,2,3,数到第三个的时候将第三个去掉,然后继续从第四个开始数1,2,3,又将第三个去掉,继续反反复复的数下去直到还有一个人。
- public staticvoid main(String []args){
- //定义一个数组用来当做500个人.并且初始化为true表示都在圈内
- boolean arr[] =newboolean[500];
- for(int i=0; i<arr.length; i++){
- arr[i]=true;
- }
- //定义一个总人数
- int count=arr.length;
- //定义一个索引位置,表示当前在那个位置
- int index=0;
- //计数器,数到3退出
- int countNum=0;
- //如果只剩下最后一个人就退出循环
- int jj=1;
- while(count>1){
- System.out.print(count+" ");
- if(arr[index]==true){//如果当前的这个人在圈内就开始数数
- countNum++;
- if(countNum==3){
- jj++;
- System.out.print("第"+jj+"圈");
- countNum=0;// 如果数到3了就要把计数器归0
- arr[index]=false; //表示这个人已经退出
- count--; //总人数减去一个
- }
- }
- index++;
- if(index==arr.length){
- index=0;
- }
- }
- //找到最后一个在圈子内的人的下标位置
- for(int i=0 ;i<arr.length; i++){
- if(arr[i]==true){
- System.out.println("最后剩下的一个人在第"+(i+1)+"个位置");
- }
- }
- }
- 500个人手拉手,数3退1,求最后一个人原来在那个位置
- 500个人手拉手围一圈,逢3就出去,最后只会剩以一个人
- 模拟数3退1(手拉手成圈,从第一个人开始数数,数到3的人就退出,然后继续数,直到剩下最后一个小孩)
- java代码for循环实现:500人围成一圈,数3退一,求最后留下的人的最初位置
- java代码while循环实现:500人围成一圈,数3退一,求最后留下的人的最初位置
- java代码面向对象实现:500人围成一圈,数3退一,求最后留下的人的最初位置
- 一步一步学习java数组学习(ch5)数3退1记录最后留下来的在队列中的位置
- 有17个人围成一圈(编号为0~16),从第0号的人开始从1报数,凡报到3的倍数的人离开圈子,然后再数下去,直到最后只剩下一个人为止。问此人原来的位置是多少号?
- 有10人围成圈数数,每次数到3的人退出其他人继续,问最后剩下的一个人原来的位置是多少
- 有10人围成圈数数,每次数到3的人退出其他人继续,问最后剩下的一个人原来的位置是多少
- n个人排成一圈,从1开始报数,数到3,退出,剩下的最后一个人
- 50个人围成圈,数到3和3的倍数时出圈,求剩下的人及其原来的位置
- 13个人围成一圈喊道3的退出 求最后一个人的序号
- 标号1-n的n个人首尾相接,1到3报数,报到3的退出,求最后一个人的标号
- 50个人围成一圈数到3和3的倍数时出圈,问剩下的人是谁?在原来的位置是多少
- 50个人围成一圈数到3和3的倍数时出圈,问剩下的人是谁?在原来的位置是多少
- 50个人围成一圈数到3和3的倍数时出圈,问剩下的人是谁?在原来的位置是多少(简单易懂)
- java编程题:50个人围成一圈数到3和3的倍数时出圈,问剩下的人是谁,在原来的位置是多少?
- 正则表达式语法
- Merge Sort
- winusb —— 不再为你的usb设备编写驱动
- 分页
- 设置sqlplus访问远程oracle数据库的最快方法
- 500个人手拉手,数3退1,求最后一个人原来在那个位置
- 经济学如何影响了我的人生
- jquery 分页控件
- setAutoCommit()
- freetype安装
- CTime和COleDateTime
- Android Camera 使用小结
- js操作frameset frame 对象
- .net 缓存(二)