博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[转] JAVA数三退1问题解
阅读量:5810 次
发布时间:2019-06-18

本文共 1149 字,大约阅读时间需要 3 分钟。

问题:500个小孩手拉手围成一圈,从第一个小孩开始数数,按照123123循环不断的数,数到3的小孩退出圈,其他小孩接着数,直到剩下一个小孩,问这个小孩的排在什么位置?

 

思路分析:可以定义一个布尔型的数组,用来存放500个小孩,若为true,代表在圈内,若为false,则代表出圈。首先,每个小孩都在圈内(即数组中的元素都赋值为true),从第一个小孩开始数,首先判断其是否在圈内,若在,继续数(countNum自加1),若不在,忽略掉他的存在,从下个小孩接着数,当数到3时,这个小孩定义为false,剩余小孩的的数目自减1,知道剩一个小孩。

 

程序如下:

 

public class Count3Quit {       public static void main(String[] args) {              boolean[] arr = new boolean[500];   //布尔型数组,true表示还在,false表示退出。              for(int i=0; i
1) { //只要剩余人数大于1,就继续数 if(arr[index] == true) { // 若数到第index个人,此人没有退出,就继续数 countNum++; if(countNum ==3) { //数到3,此小孩出圈 countNum = 0; arr[index] = false; leftCount --; } } index ++; if(index == arr.length) { index = 0; } } for(int i=0; i

 

转载于:https://www.cnblogs.com/gaorongyi/articles/5033172.html

你可能感兴趣的文章
dubbo源码分析-架构
查看>>
Windows phone 8 学习笔记
查看>>
我的友情链接
查看>>
LeetCode--112--路径总和
查看>>
感悟贴2016-05-13
查看>>
百度编辑器ueditor 光标位置的坐标
查看>>
DEV-C++ 调试方法简明图文教程(转)
查看>>
参加婚礼
查看>>
Java重写equals方法和hashCode方法
查看>>
Spark API编程动手实战-07-join操作深入实战
查看>>
Spring ’14 Wave Update: Installing Dynamics CRM on Tablets for Windows 8.1
查看>>
MySQL 备份与恢复
查看>>
TEST
查看>>
PAT A1037
查看>>
(六)Oracle学习笔记—— 约束
查看>>
[Oracle]如何在Oracle中设置Event
查看>>
top.location.href和localtion.href有什么不同
查看>>
02-创建hibernate工程
查看>>
Scrum之 Sprint计划会议
查看>>
svn命令在linux下的使用
查看>>