java报数报到3的人_Java-n个人报数
题目:
有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的哪一位?
大概思路:假设有3个人,它们围成一圈,按照顺时针或逆时针给他们排序,从第一个人开始说,凡是报到3的人退出。其余人继续围成一个圈子,直到只剩下一个人。
问最后留下来的是哪一位?package com.zhj.www;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
public class Test {
static int n; //从屏幕输入固定的人数n;
static int[] people; //人的数组;
public static void main(String[] args) {
System.out.println("请输入人数n:");
Scanner input=new Scanner(System.in);
n=input.nextInt();
people=new int[n];
//开始非3的数设置报数
selectNoThreeToSet();
//打印结果
printResult();
}
//开始非3的数设置报数
private static void selectNoThreeToSet() {
int notThreeCount=n,num=1; //不是3的个数,用来作为一个跳出循环的条件,当notThreeCount=1时,跳出循环,代表只剩一个了
for(int i=0;;i++) {
if(i==n) //检索不是只遍历一次数组,需要循环遍历,当下标i自加到数组最后时,需要从0开始自加 ,多次遍历
i=0;
if(people[i]!=3) { //只有不为0的进行赋值
if(num>3) //报号的数,循环123,如果大于3即4,重新从1开始
num=1;
people[i]=num;
if(num==3) //当只有报数为3时notThreeCount自减
notThreeCount--;
num++; //如果一个同学报数成功,下一个需要加1(这里不考虑循环回1)
}
if(notThreeCount==1)
break;
}
}
//打印结果
private static void printResult() {
int t=0;
for(int i=0;i
System.out.print(people[i]+"\t");
if(people[i]!=3)
t=i;
}
System.out.printf("\n最后剩下的数为原来第%d号的同学\n",t+1);
}
}
运行结果:
请输入人数n:
10
3332333333
最后剩下的数为原来第4号的同学。
java报数报到3的人_Java-n个人报数相关推荐
- n个人围成一圈 报数java_n个人围成一圈报数,报到3的人退出,依次直到剩下一人,这人是第几个人?用java,不知道哪里错...
importjava.util.Scanner;publicclasscjj{publicstaticvoidmain(String[]args){Scannerinput=newScanner(Sy ...
- 详细讲解C语言经典例题:有n个人围成一圈,顺序排号。从第1个人开始报数(从1到3报数),凡报到3的人退出圈子, 问最后留下的是原来第几号的那位
有n个人围成一圈,顺序排号.从第1个人开始报数(从1到3报数),凡报到3的人退出圈子, 问最后留下的是原来第几号的那位 如题,相信很多人都和我一样,当时看到根本不知道从何下手.那么我们先不看代码,画图 ...
- python模拟报数游戏有n个人围成一圈,从0到n-1按顺序编号,从第一个人开始从1到k报数,报到k的人推出圈子,然后圈子缩小,从下个人继续游戏,问最后留下来的是几号?
python模拟报数游戏 有n个人围成一圈,从0到n-1按顺序编号,从第一个人开始从1到k报数,报到k的人推出圈子,然后圈子缩小,从下个人继续游戏,问最后留下来的是几号? from itertools ...
- c语言编程题:m个人围成一圈,每数n个人就踢出一个直到剩下一个人,m个人围成一圈,1,2,3循环报数,报到3的人退出,并... m个人围成一个圈有多少种方法?...
导航:网站首页 > m个人围成一圈,1,2,3循环报数,报到3的人退出,并... m个人围成一个圈有多少种方法? m个人围成一圈,1,2,3循环报数,报到3的人退出,并... m个人围成一个圈有 ...
- java 报数游戏:有n个孩子站成一圈,从第一个孩子开始顺时针方向报数,报到m的人出列
import java.util.ArrayList; import java.util.List; import java.util.Scanner; public class BaoShuGame ...
- Java解决有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位
面试的时候碰到这道题,后来百度了一下感觉答案不对,而且也比较缺少java版本.就自己写了下. 题目描述:有 n 个人围成一圈,顺序排号.从第一个人开始报数(从 1 到 3 报数),凡报到 3的人退出圈 ...
- Java 有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位
代码如下: import java.util.Scanner;public class Test15 {public static void main(String[] args) {//定义数组判断 ...
- 报数游戏1-3循环报数,报到3的人退出,求原来的序号
题目: 有 n 个人围成一圈,顺序排号.从第一个人开始报数(从 1 到 3 报数),凡报到 3 的人退出圈子,问最后留下的是原来第几号的那位. import java.util.Scanner; pu ...
- 约瑟夫环问题:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。...
首先,我最大的学习来源不是百度而是我群友~~在这里表白一波我热爱学习的群友们! 然后今天群里突然有人提出了题目的这个问题: 有n个人围成一圈,顺序排号.从第一个人开始报数(从1到3报数),凡报到3的人 ...
- 100个人围成一个圈从1开始报数,输入数m,报到m的人退出,继续从1开始报,报到m继续退出依次下去直到剩余的人小于m不再报数,输出剩下人的位置。
题目:100个人围成一个圈从1开始报数,输入数m,报到m的人退出,继续从1开始报,报到m继续退出依次下去直到剩余的人小于m不再报数,输出剩下人的位置. import java.util.*;publi ...
最新文章
- [置顶] 【C#】 Socket通讯客户端程序
- 【Machine Learning】机器学习の特征
- Python--day43--增删改查补充和limit以及order by
- 2017年09月23日普级组 数列
- 基于光线追踪的渲染中景深(Depth of field)效果的实现
- mysql之锁与事务
- python文件及异常处理
- AI端部署“三问”:模型如何跑起来、跑得快、持续跑
- 调用另一个cpp的变量_Il2Cpp Internals: 托管调用栈
- 详解Python序列解包(5)
- 币安“碟中谍”,真相只有一个
- vs 外部依赖项、附加依赖项以及如何添加依赖项目
- 模拟银行转账(java+mysql+tomcat +JDBC+ druid连接池 + Servlet + Ajax)
- nas 微型计算机,快速做种,PT上传更方便 用NAS玩转PT
- python个人博客毕业设计开题报告
- 从钢铁侠看Decorator 装饰者模式
- 分门别类总结Java中的各种锁,让你彻底记住
- 如何理解CNN中的感受野(receptive-field)以及如何计算感受野?
- 老域名转新网站的方法
- Excel空白单元格如何填充上方的数据
热门文章
- cgroup学习(六)——attach task
- 静默安装apk,静默卸载apk
- 1090 Highest Price in Supply Chain(25 分)
- L2-020. 功夫传人(STL+深搜)
- 学生如何免费使用Jetbrains旗下包含Pycharm等开发工具(中文详细教程)
- java 并行框架_JAVA并行框架学习之ForkJoin
- fastjson 序列化 不包括转义字符_fastjson漏洞复现
- 前端ajax token,jQury Ajax使用Token验证身份实例代码_白江_前端开发者
- python是个什么东西刷爆朋友圈_几十行代码让你知道朋友圈都是什么样的朋友
- iOS FMDB有返回结果集和无返回结果集