• 约瑟夫环是一个数学的应用问题:已知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; 
            } 
             
        } 

  • 相关阅读:
    【Java】Java 序列化的高级认识
    【随笔】感同身受
    【教训】徐小平:不要用兄弟情谊来追求共同利益,要用共同利益追求兄弟情谊
    【面试】惠普IT电面
    【面试】中兴
    【面试】国金证券
    【298】◀▶ IDL 系统过程&函数
    【297】IDL 过程、函数&关键字参数
    【296】Python 默认 IDE 修改
    【295】暗黑表格模板及相关
  • 原文地址:https://www.cnblogs.com/qq809102690/p/3713248.html
Copyright © 2020-2023  润新知