面试题:

设有N个人依次围成一圈,从第1个人开始报数,第M个人出列,然后从出列的下一个人开始报数,数到第M个人又出列,...,如此反复到所有的人全部出列为止,设N个人的编号分别为1,2,...,N,打印出出列的顺序,要求用java实现。

参考代码:

package com;/**  编程题:设有N个人依次围成一圈,从第1个人开始报数,第M个人出列,然后从出列的下一个人开始报数,数到第M个人又出列,...,*  如此反复到所有的人全部出列为止,设N个人的编号分别为1,2,...,N,打印出出列的顺序,要求用java实现。*/
public class demo {public static void main(String args[]){int n=99;//人数,1...99编号int m=9;//循环次数int oCount=0;//统计总出列人数int index=1;//指示当前报数的编号int iCount=0;//统计每一轮循环报数的个数int[] icol=new int[99];for(int i=0;i<99;i++) icol[i]=0;//初始化为未出列  long start=System.currentTimeMillis();  while (true){if(oCount==n-1) { //剩下最后一个,直接出列System.out.println("最后,第"+String.valueOf(index)+"个出列!");          break;//全部出列,结束循环}if(icol[index-1]==0) iCount++;//未出列,报数if(iCount == m )    { //本轮报数循环结束    System.out.println("第"+String.valueOf(index)+"个出列!");icol[index-1]=1;//标记为已出列oCount++;//已处理人数加1iCount =0;//从头开始数每轮循环报数}index++;//下一个if(index==n) index=1;//返回队头}  long end =System.currentTimeMillis();System.out.println("总出列个数:"+String.valueOf(oCount+1));System.out.println("总时长:"+String.valueOf(end-start));}
}

执行结果:

第9个出列!
第18个出列!
第27个出列!
第36个出列!
第45个出列!
第54个出列!
第63个出列!
第72个出列!
第81个出列!
第90个出列!
第1个出列!
第11个出列!
第21个出列!
第31个出列!
第41个出列!
第51个出列!
第61个出列!
第71个出列!
第82个出列!
第92个出列!
第4个出列!
第15个出列!
第26个出列!
第38个出列!
第49个出列!
第60个出列!
第73个出列!
第84个出列!
第95个出列!
第8个出列!
第22个出列!
第34个出列!
第47个出列!
第59个出列!
第74个出列!
第86个出列!
第98个出列!
第14个出列!
第29个出列!
第43个出列!
第57个出列!
第70个出列!
第87个出列!
第3个出列!
第19个出列!
第35个出列!
第52个出列!
第67个出列!
第83个出列!
第2个出列!
第20个出列!
第39个出列!
第56个出列!
第76个出列!
第93个出列!
第13个出列!
第33个出列!
第55个出列!
第77个出列!
第96个出列!
第23个出列!
第44个出列!
第66个出列!
第89个出列!
第16个出列!
第42个出列!
第68个出列!
第94个出列!
第25个出列!
第53个出列!
第80个出列!
第12个出列!
第48个出列!
第79个出列!
第17个出列!
第58个出列!
第91个出列!
第32个出列!
第75个出列!
第24个出列!
第65个出列!
第10个出列!
第69个出列!
第30个出列!
第88个出列!
第50个出列!
第28个出列!
第5个出列!
第85个出列!
第78个出列!
第97个出列!
第7个出列!
第46个出列!
第37个出列!
第40个出列!
第6个出列!
第62个出列!
第64个出列!
最后,第65个出列!
总出列个数:99
总时长:7

Java经典面试题(N人循环报M个数出列)实现相关推荐

  1. Java经典面试题汇总200道

    超详细的Java学习资料汇总 Java经典面试题汇总 Java 基础 1. JDK 和 JRE 有什么区别? 2. == 和 equals 的区别是什么? 3. 两个对象的 hashCode()相同, ...

  2. java面试题_阿里大厂流出的数百道 Java 经典面试题

    BAT 常问的 Java基础39道常见面试题 1.八种基本数据类型的大小,以及他们的封装类 2.引用数据类型 3.Switch能否用string做参数 4.equals与==的区别 5.自动装箱,常量 ...

  3. 拒绝面试造火箭,工作拧螺丝——Java经典面试题分享『带答案』

    本文转载自:拒绝"面试造火箭,工作拧螺丝"--Java经典面试题分享『带答案』 1. Java三大版本 Java2平台包括标准版(J2SE).企业版(J2EE)和微缩版(J2ME) ...

  4. Java经典面试题整理及答案详解(八)

    简介: Java经典面试题第八节来啦!本节面试题包含了进程.线程.Object类.虚拟内存等相关内容,希望大家多多练习,早日拿下心仪offer- 了解更多: Java经典面试题整理及答案详解(一) J ...

  5. Java经典面试题整理及答案详解(四)

    简介: Java经典面试题第四弹来啦!本节小编整理了关于Java开发框架常见的面试题,希望大家多多怜惜,一起进步- 1.SpringMVC返回值,使用SpringMVC的时候我看到两种风格的开发,一种 ...

  6. Java经典面试题整理及答案详解(三)

    简介: 以下是某同学面试时,面试官问到的问题,关于面试题答案可以参考以下内容- 上一篇:Java经典面试题整理及答案详解(二) Java面试真题第三弹接住!相信通过前两节的学习,大家对于Java多少有 ...

  7. Java经典面试题一

    转载自  Java经典面试题一 题目一 面向对象的特征有哪些方面? 答:面向对象的特征主要有以下几个方面: 1.抽象: 抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面.抽 ...

  8. Java经典面试题答案解析(1-80题)

    前言 前几天,在茫茫的互联网海洋中寻寻觅觅,把收藏的800道Java经典面试题都发出来,有小伙伴私聊我要答案.所以感觉没有答案的面试题是没有灵魂的,于是今天先整理基础篇的前80道答案出来哈~ 所有的J ...

  9. Java经典面试题 带答案(五)

    Java经典面试题 带答案(五) Java 面试笔试题汇总 一.编程语言(Java)-2 二.软件工程方面-9 三.智力测试-9 四.数据库-12 五.Java框架方面 -14 六.XML方面-17 ...

最新文章

  1. linux mysql 5.7.12_Linux环境mysql5.7.12安装教程
  2. C#实现异步消息队列
  3. NSLog中格式符列表
  4. UVa 11346 - Probability
  5. MyBatis学习总结(23)——Mybatis打印Sql语句配置
  6. 详解CNN五大经典模型:Lenet,Alexnet,Googlenet,VGG,DRL
  7. python脚本——Excel处理
  8. leader epoch
  9. excel插件方格格子
  10. 翻译2Momentum, business cycle, and time varying expected returns(后附读后感)(图表上传不了)
  11. HTML做表格——个人简历
  12. word删除页眉线,添加第几页共几页
  13. 【leetcode.179】最大数
  14. Thinkphp 6.0请求对象和信息
  15. TPH-YOLOv5简述
  16. 统计函数耗费时间,简单的图像运算,定义感兴趣区域 第二章
  17. 移动支付模式再添新军:指纹支付
  18. DataX及DataX-Web
  19. 比尔·盖茨:我们被摩尔定律忽悠了
  20. Google又逆天:语音输入离线实时输出文字,仅占80MB!然而……

热门文章

  1. Zabbix监控httpd服务
  2. 系统权限oracle,oracle系统权限
  3. 好久没有处理过故障了
  4. Python pygame
  5. WAMP安装提示缺少 msvcr100.dll文件解决方法
  6. 健康研究总结摘录专题
  7. UITextField的属性与程序启动后一系列方法
  8. HDU ACM 1046 Gridland 找规律
  9. 如何理解c和c ++的复杂类型声明 (转)
  10. 用于主题检测的临时日志(d94169f9-f1c0-45a2-82d4-6edc4bd35539 - 3bfe001a-32de-4114-a6b4-4005b770f6d7)...