Java递归算法

787 阅读1分钟

约瑟夫环

public class Loop {
 public static void main(String args[]){
     System.out.print(getLuckNum(8));
 }
 //定义一个接收数的方法
 public static int getLuckNum(int num){
 //创建一个集合去缓存人数
     ArrayList<Integer> list=new ArrayList<>();
       for(int i=1;i<=num;i++){
           list.add(i);
       }
       //定义数的读取
       int count=1;
       for(int i=0;list.size()!=1;i++){
           if(i==list.size()){
               i=0;
           }
           if(count%3==0){
           //特别注意这里要i--,要删除满足条件的数
              list.remove(i--);
           }
            count++;
       }
       //返回索引为0 值
       return list.get(0);
     
 }
 }