package test; import java.util.ArrayList; import java.util.List; public class test { //约瑟夫环 //n个人站成一圈 1-m报数 报到m的人 跳出圈外 最后一个剩下的是谁? static final int N = 20; static final int M = 3; public static void main(String [] args){ List list = new ArrayList(); for( int i = 0 ;i<N;i++){ list.add(i+1); } System.out.println("最后一个剩下的是:"+exe(list,1)); } public static int exe(List array,int step){ if(array.size()==1){ //只剩下一个了 System.out.println(array.get(0)); return (Integer)(array.get(0)); }else{ for(int i = 0;i<array.size() ; i++){ // System.out.println(step); if(step % M == 0){ System.out.println("跳出圈外-》"+array.get(i)); array.remove(i); //上面remove一个 i-- 不然不是跳过了么 i=i-1; step=1; }else{ step++; } } return exe(array,step); } } } n个人站一圈 真无聊~!