//求约瑟夫问题类 // 方法palindrome(int N,int M) import java.util.ArrayList; public class Palindrome { public void palindrome(int N,int M){ ArrayList<Integer> list = new ArrayList<Integer>(); for (int i = 1; i <= N; i++) { list.add(i); } int i = 1; while (list.size()>1) { Integer[] listNum = list.toArray(new Integer[0]); for(int n : listNum){ if (i < M) { i++; }else { //System.out.println(n); //按出局顺序输出出局的数字 list.remove(Integer.valueOf(n)); i=1; } } } System.out.println(list.get(0)); } } //测试类 package com.bean;public class Test { public static void main(String[] args) { Palindrome p=new Palindrome(); p.palindrome(11, 3);//传入参数 }}
// 方法palindrome(int N,int M)
import java.util.ArrayList;
public class Palindrome {
public void palindrome(int N,int M){
ArrayList<Integer> list = new ArrayList<Integer>();
for (int i = 1; i <= N; i++) {
list.add(i);
}
int i = 1;
while (list.size()>1) {
Integer[] listNum = list.toArray(new Integer[0]);
for(int n : listNum){
if (i < M) {
i++;
}else {
//System.out.println(n); //按出局顺序输出出局的数字
list.remove(Integer.valueOf(n));
i=1;
}
}
}
System.out.println(list.get(0));
}
}
//测试类
package com.bean;public class Test {
public static void main(String[] args) {
Palindrome p=new Palindrome();
p.palindrome(11, 3);//传入参数
}}