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


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

 

只是用一个for完成

public class Test06 {

    public static void main(String[] args) {
        int[] arr={1,2,3,4,5,6,7,8,9,10};
        int counter=0;//用于计算退出的人数
        int j=0;//用于报数
        /*    arr[i%arr.length]可以用来表示数组成环时元素的定位
         *  j用于报数,和成环元素的定位下标无关
         * */
        for(int i=0;counter<arr.length-1;i++){
            if(arr[i%arr.length]!=0){//元素不为0时,表明没有退出
                if((j+1)%3==0){//报数是3时
                    System.out.println("退出的人是:"+arr[i%arr.length]);
                    arr[i%arr.length]=0;//元素置零表示退出
                    counter++;
                }
                j++;//只要没有退出,报数就加1
                
            }
        }
        for(int i=0;i<arr.length;i++){
            if(arr[i]!=0){
                System.out.println("最后剩下的人是:"+arr[i]+"号");
            }
        }
    }

}

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



猜您在找 有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。 有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。 报数问题:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位 【JAVA习题二十七】有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下 有17个人围成一圈(编号为0~16),从第 0号的人开始从 1报数, 凡报到 3的倍数的人离开圈子,然后再数下去,直到最后只剩下一个人为止。 问此人原来的位置是多少号? java解答:有17个人围成一圈(编号0~16),从第0号的人开始从1报数,凡报到3的倍数的人离开圈子,然后再数下去,直到最后只剩下一个人为止,问此人原来的位置是多少号? 有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。请问第五个人多大? C语言——N个人围成一圈报数淘汰问题 Leetcode练习(Python):动态规划类:第213题:打家劫舍 II:你是一个专业的小偷,计划偷窃沿街的房屋,每间房内都藏有一定的现金。这个地方所有的房屋都围成一圈,这意味着第一个房屋和最后一个房屋是紧挨着的。同时,相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。 python邮件发送给多人时,只有第一个人能收到的问题
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM