zoukankan      html  css  js  c++  java
  • 约瑟夫环是一个数学的应用问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。

    以数组的方法:

     public static void main(String[] args) {
            final int n = 10; 
            final int k = 1; 
            final int m = 3; 
            start(n, k, m); 
     }
        public static void start(int n, int k, int m){ 
            //生产数组 
            int[] arrays = new int[n]; 
            for (int i = 0; i < arrays.length; i++) 
                arrays[i] = i+1; 
            //开始弹出 
            int now = 0; 
            int num = k; //当前人 
      int j=1;
            while(j<=n){        
                if(arrays[num-1] != 0){ //如果当前没弹出 
                 now ++ ;
                    if(now == m){ //弹出 
                        System.out.println("pop:" + arrays[num-1]); 
                        arrays[num-1] = 0; 
         j++;
                        now = 0; 
                    } 
                } 
                num ++ ; 
                if(num > n) 
                    num = 1; 
            } 
             
        } 

  • 相关阅读:
    Python----路由器远程控制
    进程和线程的区别
    tengine日志切割-配置分钟级别日志自动切割
    grep每次读取多大的文本
    bc 进制间转换
    二分法猜数字
    What is the difference between HTTP_CLIENT_IP and HTTP_X_FORWARDED_FOR
    Nginx配置两份日志记录
    Nginx启动报错误unlink() “nginx.pid” failed (2: No such file or directory)
    Mysql 数据库crash恢复
  • 原文地址:https://www.cnblogs.com/qq809102690/p/3713248.html
Copyright © 2011-2022 走看看