您的位置:首页 > Web前端

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

2018-03-24 12:55 351 查看
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<Integer> list=new ArrayList<>();
for(int i=0;i<n;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);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: