剑指offer--圆圈中最后剩下的数字

package 圆圈中最后剩下的数字;


import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;


/*例如 0,1,2,3,4这5个数字组成一个圆圈,
 * 从0开始每次删除第三个数字,
 * 则删除的前4个数字是2,0,4,1
最后剩下的数字是3(约瑟夫环问题)*/
public class Problem62 {


public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
int n=scanner.nextInt();
Problem62 problem62=new Problem62();
int a=problem62.leftPerson(n);
System.out.println(a);
}

public static int leftPerson(int n){
List list=new ArrayList<>();
for(int i=0;i list.add(i);
}
int count;
int index=0;

while(list.size()>1){
for(int i=1;i<3;i++){
index=(index+1)%list.size();
}
list.remove(index);
}
return list.get(0);
}
}

你可能感兴趣的:(剑指offer--圆圈中最后剩下的数字)