Java藍橋杯之約瑟夫環
阿新 • • 發佈:2018-12-19
import java.util.ArrayList;
public class Test8 {
/**
* @param args
* 約瑟夫環
* * 幸運數字
*/
public static void main(String[] args) {
System.out.println(getLucklyNum(8));
}
/*
* 獲取幸運數字
* 1,返回值型別int
* 2,引數列表int num
*/
public static int getLucklyNum(int num) {
ArrayList<Integer> list = new ArrayList<>(); //建立集合儲存1到num的物件
for(int i = 1; i <= num; i++) {
list.add(i); //將1到num儲存在集合中
}
int count = 1; //用來數數的,只要是3的倍數就殺人
for(int i = 0; list.size() != 1; i++) { //只要集合中人數超過1,就要不斷的殺
if(i == list.size()) { //如果i增長到集合最大的索引+1時
i = 0; //重新歸零
}
if(count % 3 == 0) { //如果是3的倍數
list.remove(i--); //就殺人
}
count++;
}
return list.get(0);
}
}