zoukankan      html  css  js  c++  java
  • 约瑟夫环问题-java实现

    /**
    *使用数组实现约瑟夫环问题
    *由arrLen个人围成一个首尾相连的圈报数。
    *从第一个人开始,从1开始报数,报到num的人出圈,
    *剩下的人继续从1开始报数
    *对于给定的m和n,求出最后的赢家
    */
    public class hello {
        static int arrLen=3;//定义数组大小
        static int num=2;//定义 所报之数
        
        public static void main(String[] args){
            //System.out.println("Hello World!");    
            int arr[]=new int[arrLen];
            for(int i=0;i<arr.length;i++)
                arr[i]=i+1;        
            f(arr,num);        
        }
        static void f(int[] a,int n){
            int len=a.length;
            int i=0,j=1;
            while(len>0){
                if(a[i%arrLen]>0){
                    if(j%n==0){                    
                         if(len==1)
                            System.out.print(a[i%arrLen]);
                         a[i%arrLen]=-1;
                        j=1;
                        i++;
                        len--;                            
                    }else{
                        i++;
                        j++;
                    }
                }else{
                    //遇到空位了,就跳到下一位,但j不加一,也就是这个位置没有报数
                    i++;
                }             
            }
        }
    }
  • 相关阅读:
    SQLSERVER FUNCTIONS
    批处理命令学习
    java回调
    android布局中容易混淆的几个属性
    UML类图关系
    android面试试题
    Handler基础
    Android中自定义属性的使用
    php中钩子函数&实现
    Handler高级
  • 原文地址:https://www.cnblogs.com/wangfangkui/p/3505581.html
Copyright © 2011-2022 走看看