首页 > 学院 > 开发设计 > 正文

数3退1

2019-11-14 14:52:13
字体:
来源:转载
供稿:网友

我在网上找了些java的视频,学习了一下。老师讲了一道题,有500个小孩拉成一个圈,开始123123这样报数,数到3的小孩退出圈外,问:剩下最后一个小孩的位置是多少。

我跟着老师的思路缕了一下,然后自己盲打了一下代码,感觉很复杂,所以把代码copy下来,留给日后复习用。(结果:435)

//数3退1public class Count3Quit1 {    public static void main(String[] args) {                boolean[] arr = new boolean[500];        for(int i = 0; i < arr.length; i++){            arr[i] = true;        }        int leftCount = arr.length;    //剩余小孩数初始化        int countNum = 0;            //计数器(数3退1)初始化        int index = 0;                //下标值初始化        while(leftCount > 1){            if(arr[index] == true){                countNum ++;                if(countNum == 3){    //计数器数到3                    arr[index] = false;//从true变为false意为让小孩退出                    countNum = 0;    //计数器归0                    leftCount --;    //剩余小孩数-1                }            }            index ++;                //下标值            if(index == arr.length){//(0-499)当下标为第500时,一圈循环完毕,开始再一次循环,初始化下标                index = 0;            }                    }        for(int i = 0; i < arr.length; i++){            if(arr[i] == true){                System.out.PRintln(i);//打印最后剩下小孩的位置            }        }    }    }

 


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表