zoukankan      html  css  js  c++  java
  • 有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]+"号");
                }
            }
        }
    
    }
  • 相关阅读:
    NAT(网络地址转换)
    go从文件中读取json字符串并转换
    实现守护进程
    c++ uconcontext.h实现协程
    bzoj 1085骑士精神
    在线代码评测机
    基于时间轮的定时器
    内存管理(一)
    二叉树的先序中序后序(非递归)
    RDD操作
  • 原文地址:https://www.cnblogs.com/Unlimited-Rain/p/12427843.html
Copyright © 2011-2022 走看看