今天玩了一个很有趣的游戏,叫做约瑟夫环。大家都听说过“约瑟夫环”吧:话说从前,有位国王,特别残暴。有天呢,他闲的蛋疼,想把关在监狱里的囚犯都弄出来玩个有趣的游戏——把每个囚犯编个号,凡是3的倍数的囚犯,全部拖出去砍了!然后剩下的再从头开始,从一数起,凡是数到3的倍数,同样也给杀了。。。(真心杀人杀到手软)以此类推,最后只剩下一个人,那么这个人就是幸运的,无罪释放!
用java语言实现上述的过程,最后留下一个幸运的数字!
源代码如下:(亮点在注释!)
package com.heima.test;
import java.util.ArrayList;
public class Test7 {
/**
* 约瑟夫环(杀人游戏)
* 幸运数字
*/
public static void main(String[] args) {
System.out.println(getLuckyNum(899));
}
public static int getLuckyNum(int num) {
//创建集合对象
ArrayList<Integer> list = new ArrayList<>();
//添加人头
for (int i = 1; i <= num; i++) {
list.add(i);
}
//添加计数器
int count = 1;
//开始杀人
for (int i = 0; list.size() != 1; i++) {
//到达末尾,就从头开始循环再杀
if (i == list.size()) {
i = 0;
}
//凡是3的倍数就拖出去斩了
if (count % 3 == 0) {
list.remove(i--);
}
//计数
count++;
}
//只剩下一个幸运的人
return list.get(0);
}
}
是不是很有意思呢?用代码实现一些有趣的小游戏,想怎么死就怎么死。只要代码掌握在你手上,想长生不老都可以!
|
|