题目:

有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个人报数相关推荐

  1. n个人围成一圈 报数java_n个人围成一圈报数,报到3的人退出,依次直到剩下一人,这人是第几个人?用java,不知道哪里错...

    importjava.util.Scanner;publicclasscjj{publicstaticvoidmain(String[]args){Scannerinput=newScanner(Sy ...

  2. 详细讲解C语言经典例题:有n个人围成一圈,顺序排号。从第1个人开始报数(从1到3报数),凡报到3的人退出圈子, 问最后留下的是原来第几号的那位

    有n个人围成一圈,顺序排号.从第1个人开始报数(从1到3报数),凡报到3的人退出圈子, 问最后留下的是原来第几号的那位 如题,相信很多人都和我一样,当时看到根本不知道从何下手.那么我们先不看代码,画图 ...

  3. python模拟报数游戏有n个人围成一圈,从0到n-1按顺序编号,从第一个人开始从1到k报数,报到k的人推出圈子,然后圈子缩小,从下个人继续游戏,问最后留下来的是几号?

    python模拟报数游戏 有n个人围成一圈,从0到n-1按顺序编号,从第一个人开始从1到k报数,报到k的人推出圈子,然后圈子缩小,从下个人继续游戏,问最后留下来的是几号? from itertools ...

  4. c语言编程题:m个人围成一圈,每数n个人就踢出一个直到剩下一个人,m个人围成一圈,1,2,3循环报数,报到3的人退出,并... m个人围成一个圈有多少种方法?...

    导航:网站首页 > m个人围成一圈,1,2,3循环报数,报到3的人退出,并... m个人围成一个圈有多少种方法? m个人围成一圈,1,2,3循环报数,报到3的人退出,并... m个人围成一个圈有 ...

  5. java 报数游戏:有n个孩子站成一圈,从第一个孩子开始顺时针方向报数,报到m的人出列

    import java.util.ArrayList; import java.util.List; import java.util.Scanner; public class BaoShuGame ...

  6. Java解决有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位

    面试的时候碰到这道题,后来百度了一下感觉答案不对,而且也比较缺少java版本.就自己写了下. 题目描述:有 n 个人围成一圈,顺序排号.从第一个人开始报数(从 1 到 3 报数),凡报到 3的人退出圈 ...

  7. Java 有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位

    代码如下: import java.util.Scanner;public class Test15 {public static void main(String[] args) {//定义数组判断 ...

  8. 报数游戏1-3循环报数,报到3的人退出,求原来的序号

    题目: 有 n 个人围成一圈,顺序排号.从第一个人开始报数(从 1 到 3 报数),凡报到 3 的人退出圈子,问最后留下的是原来第几号的那位. import java.util.Scanner; pu ...

  9. 约瑟夫环问题:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。...

    首先,我最大的学习来源不是百度而是我群友~~在这里表白一波我热爱学习的群友们! 然后今天群里突然有人提出了题目的这个问题: 有n个人围成一圈,顺序排号.从第一个人开始报数(从1到3报数),凡报到3的人 ...

  10. 100个人围成一个圈从1开始报数,输入数m,报到m的人退出,继续从1开始报,报到m继续退出依次下去直到剩余的人小于m不再报数,输出剩下人的位置。

    题目:100个人围成一个圈从1开始报数,输入数m,报到m的人退出,继续从1开始报,报到m继续退出依次下去直到剩余的人小于m不再报数,输出剩下人的位置. import java.util.*;publi ...

最新文章

  1. [置顶] 【C#】 Socket通讯客户端程序
  2. 【Machine Learning】机器学习の特征
  3. Python--day43--增删改查补充和limit以及order by
  4. 2017年09月23日普级组 数列
  5. 基于光线追踪的渲染中景深(Depth of field)效果的实现
  6. mysql之锁与事务
  7. python文件及异常处理
  8. AI端部署“三问”:模型如何跑起来、跑得快、持续跑
  9. 调用另一个cpp的变量_Il2Cpp Internals: 托管调用栈
  10. 详解Python序列解包(5)
  11. 币安“碟中谍”,真相只有一个
  12. vs 外部依赖项、附加依赖项以及如何添加依赖项目
  13. 模拟银行转账(java+mysql+tomcat +JDBC+ druid连接池 + Servlet + Ajax)
  14. nas 微型计算机,快速做种,PT上传更方便 用NAS玩转PT
  15. python个人博客毕业设计开题报告
  16. 从钢铁侠看Decorator 装饰者模式
  17. 分门别类总结Java中的各种锁,让你彻底记住
  18. 如何理解CNN中的感受野(receptive-field)以及如何计算感受野?
  19. 老域名转新网站的方法
  20. Excel空白单元格如何填充上方的数据

热门文章

  1. cgroup学习(六)——attach task
  2. 静默安装apk,静默卸载apk
  3. 1090 Highest Price in Supply Chain(25 分)
  4. L2-020. 功夫传人(STL+深搜)
  5. 学生如何免费使用Jetbrains旗下包含Pycharm等开发工具(中文详细教程)
  6. java 并行框架_JAVA并行框架学习之ForkJoin
  7. fastjson 序列化 不包括转义字符_fastjson漏洞复现
  8. 前端ajax token,jQury Ajax使用Token验证身份实例代码_白江_前端开发者
  9. python是个什么东西刷爆朋友圈_几十行代码让你知道朋友圈都是什么样的朋友
  10. iOS FMDB有返回结果集和无返回结果集