博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java约瑟夫问题
阅读量:6955 次
发布时间:2019-06-27

本文共 1247 字,大约阅读时间需要 4 分钟。

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
package josephus; import java.io.IOException; import java.util.ArrayList; /**  * Created by piqiu on 1/19/16.  * Flavius Josephus是公元一世纪的一个犹太历史学家.传说他是罗马人俘获的41个犹太反叛者之一,  * 罗马人决定杀害他们,而不是劝其投降.他们决定让这些犹太人站成一个圆圈,并且每隔3个人就杀害1人,  * 直到杀光所有的人.Josephus并不相死,于是他计算了一下自己需要站的位置,以使他成为最后一个活下来  * 的人,从而免于一死.这样就产生了一类称作Josephus的问题.这些问题表述为:在链表中的事件不是依次  * 取走,而是每次循环地取走第i个元素,直至取走所有事件的情况下,找出事件的顺序.  */ public class Josephus {
public static void main(String[] args) throws IOException {
// 总人数 int num = 10; // 每次删后面的第几个 int step = 3; // 删除的下标索引 int index = step - 1; // 被删除的数据 Object removeData; // 填充数据到ArrayList ArrayList list = new ArrayList(); for (int i = 1; i <= 10; i++) {
list.add(new Integer(i)); } System.out.println("The order is: "); // 循环删除 while (!(list.isEmpty())) {
removeData = list.remove(index); num = num - 1; if (num > 0) index = (index + step -1) % num; System.out.println(removeData); } } }

转载地址:http://jfnil.baihongyu.com/

你可能感兴趣的文章
url两次编码
查看>>
正则表达式相关
查看>>
[转]hisi mmz模块驱动讲解
查看>>
二叉树非递归先中后序遍历 及 非递归交换二叉树两个孩子的位置
查看>>
项目总结23:POI生成Excel文件并浏览器导出
查看>>
RabbitMQ 端口号解析
查看>>
当在java不同包中有相同名字的servlet时,在web.xml中该如何配置?
查看>>
仿当当网鼠标经过图片翻转
查看>>
ubuntu 创建桌面快捷方式
查看>>
第三次作业
查看>>
洛谷P5055 【模板】可持久化文艺平衡树(FHQ Treap)
查看>>
【WebApi】通过HttpClient调用Web Api接口
查看>>
iphone-common-codes-ccteam源代码 CCUIViewController.m
查看>>
阿里云乌班图安装JDK\MYSQL\REDIS
查看>>
git冲突解决
查看>>
探索性测试实例-方法篇
查看>>
数论之 莫比乌斯函数
查看>>
AtCoder Regular Contest 096
查看>>
vue-music 关于Search(搜索页面)-- 搜索结果优化
查看>>
Django:URL,Views,Template,Models
查看>>