剑指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);
}
}
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);
}
}
相关文章推荐
- 剑指 offer set 21 圆圈中最后剩下的数字
- 剑指Offer 45圆圈中最后剩下的数字
- 剑指Offer学习总结-圆圈中最后剩下的数字
- 【剑指Offer学习】【面试题45:圆圈中最后剩下的数字(约瑟夫环问题)】
- 剑指offer-面试题45-圆圈中最后剩下的数字
- 剑指Offer:圆圈中最后剩下的数字
- 剑指Offer-62:圆圈中最后剩下的数字
- 剑指offer——面试题45:圆圈中最后剩下的数字
- 剑指offer 6.4 抽象建模能力3 -圆圈中最后剩下的数字
- 剑指offer 45. 圆圈中最后剩下的数字
- 【剑指offer-Java版】45圆圈中最后剩下的数字
- 剑指Offer:面试题45 圆圈中最后剩下的数字
- 剑指offer之面试题45圆圈中最后剩下的数字
- 剑指Offer面试题45圆圈中最后剩下的数字(约瑟夫环问题),面试题46求1+2+...+n
- 剑指Offer 面试题45:圆圈中最后剩下的数字(约瑟夫环问题,ZOJ 1088:System Overload类似)题解
- <未完成状态>剑指offer_圆圈中最后剩下的数字(约瑟夫问题)
- 剑指offer面试题目:圆圈中最后剩下的数字(约瑟夫环)
- 【剑指offer】6.4抽象建模能力——面试题45:圆圈中最后剩下的数字
- 剑指Offer——圆圈中最后剩下的数字
- [剑指offer] 圆圈中最后剩下的数字