java 约瑟夫(josephus)问题_Java-約瑟夫問題(Josephus Problem)
題目:
據說着名猶太歷史學家 Josephus有過以下的故事:在羅馬人占領喬塔帕特后,39 個猶太人與Josephus及他的朋友躲到一個洞中,39個猶太人決定寧願死也不要被敵人到,於是決定了一個自殺方式,41個人排成一個圓圈,由第1個人 開始報數,每報數到第3人該人就必須自殺,然后再由下一個重新報數,直到所有人都自殺身亡為止。
然而Josephus 和他的朋友並不想遵從,Josephus要他的朋友先假裝遵從,他將朋友與自己安排在第16個與第31個位置,於是逃過了這場死亡游戲。
最后一個自殺的是在第31個位置,而倒數第二個自殺的要排在第16個位置,之前的人都死光了,所以他們也就不知道約琴夫與他的朋友並沒有遵守游戲規則了。
思路:
/*** 思路:在循環處理的時候,數組保持長度不變,增加三個變量,* i作為循環遍歷參數,超出數組長度則重置為0;* num,作為有效數字長度,每減一個數字,num--;* flag,滿三減一,將需要減去的數字置位0;*/
public class Main {
public static void main(String[] args) {
int list[] = new int[41];
for (int i = 0; i < 41; i++) {
list[i] = (i + 1);
}
int i = 0, num = 41, flag = 0;
while (num > 2) {
//有效數字
if (list[i]!=0) {
flag++;
if (flag == 3) {
list[i] = 0;num--;flag = 0;
}
}
i++;
if (i >= list.length) {i = 0;}
}
for (i = 0; i < list.length; i++) {
if (list[i]==0) continue;
System.out.print(list[i] + " ");
}
}
}
java 约瑟夫(josephus)问题_Java-約瑟夫問題(Josephus Problem)相关推荐
- 【洛谷】P1145-约瑟夫
[洛谷]P1145-约瑟夫 题目链接 P1145 约瑟夫-洛谷 解析 与最经典的约瑟夫问题略有不同,这题要求刚好使队伍后一半人全部出列. 注:队伍序号从0开始! 这里我采用的是求出出队的人在当前队伍中 ...
- 互联网奠基人:温顿·瑟夫自曝新冠病毒检测呈阳性
By 超神经 场景描述:互联网奠基人之一:温顿·瑟夫(Vinton G. Cerf) ,3 月 30 日在自己的推特上发布自己冠状病毒检测呈阳性. 关键词:新冠病毒 TCP/IP TCP/IP 协议 ...
- 互联网之父温顿·瑟夫今日访华
8月17日,谷歌全球副总裁.Internet奠基人,被誉为"互联网之父"的温顿·瑟夫(Vinton Cerf)博士将第二次访华,并在中国互联网协会与谷歌共同举办的"互联网 ...
- 互联网之父:文登•瑟夫
互联网每一步关键的进化背后,都有一位了不起的的奠基人.现年67岁的文登•瑟夫(Vinton G. Cerf)就是这样一位当之无愧的"互联网之父".他和罗伯特•卡恩一起构建了TCP, ...
- 微软副总裁尤瑟夫·梅赫迪对必应和“病”同音的解释
尊敬的编辑: 7月8日收到阁下的来信,当中谈及一些微软新搜索引擎的问题,你说"Bing"在中文里有负面的含义.没错,我们对这个可能的解释也十分谨慎,所以选择了一个汉语词汇跟&quo ...
- java 实现最优二叉树_哈夫曼树(最优二叉树)及其Java实现
一.定义 一些定义: 节点之间的路径长度:在树中从一个结点到另一个结点所经历的分支,构成了这两个结点间的路径上的经过的分支数称为它的路径长度 树的路径长度:从树的根节点到树中每一结点的路径长度之和.在 ...
- java父类子类顺序_java父类子类內部程序的执行顺序
之前一致沒有認真研究這個問題,今天在研究JAVA類加載順序時突然想好好地研究研究.實驗總結如下: step 1.父類的靜態成員和靜態塊(靜態變量和靜態塊屬同一級,自上而下執行) step 2.子類的靜 ...
- java cl 規格_Java JavaCL類代碼示例
本文整理匯總了Java中com.nativelibs4java.opencl.JavaCL類的典型用法代碼示例.如果您正苦於以下問題:Java JavaCL類的具體用法?Java JavaCL怎麽用? ...
- java中string范围_java中long parseLong(String s)方法中string(十进制数字)的范围?
java中long parseLong(String s)方法中string(十进制数字)的范围? 來源:互聯網 2009-06-19 05:05:28 評論 分類: 電腦/網絡 >> ...
最新文章
- c++ vector向量直接赋值_vector-Jacobian product 解释 ---- pytorch autograd
- 3d大爱心c语言程序,C语言控制台打印3D爱心图案
- Fluid — 云原生环境下的高效“数据物流系统”
- 最后8小时 | 最新智能驾驶视觉技术行业研究报告出炉!圈内从业者、投资人不可错过...
- WinPcap 获取本地适配器信息
- c51单片机矩阵键盘1602计算器_基于51单片机矩阵键盘的简易计算器制作
- [渗透测试]扫目录,Sqlmap利用均超时,利用dirb扫描
- SpringBoot框架中各层(DTO、DAO、Service、Controller)理解
- 生成icon图标 1005 html 左上角icon图标
- 腾讯云服务器配置深度学习环境
- 学python买什么书-19年学习Python有什么好的书籍推荐吗?
- 多种数据库之间的同步工具SymmetricDS
- 【python】文件打开中文符问题
- A级学科计算机技术,东南大学a类学科排名!附东大a类学科名单
- puppeteer 初步实战 测试
- 微信扫码关注登录(vue+node+express+mongodb)
- 前端监控--vue项目中使用友盟统计监控
- pg数据库意外优化一例
- 【大数据开发】SparkStreaming——DStream输入源、原语、SparkStream与Kafka和Redis三者的交互
- vue 校验表单报错:model is required for validate to wor