題目:

據說着名猶太歷史學家 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)相关推荐

  1. 【洛谷】P1145-约瑟夫

    [洛谷]P1145-约瑟夫 题目链接 P1145 约瑟夫-洛谷 解析 与最经典的约瑟夫问题略有不同,这题要求刚好使队伍后一半人全部出列. 注:队伍序号从0开始! 这里我采用的是求出出队的人在当前队伍中 ...

  2. 互联网奠基人:温顿·瑟夫自曝新冠病毒检测呈阳性

    By 超神经 场景描述:互联网奠基人之一:温顿·瑟夫(Vinton G. Cerf) ,3 月 30 日在自己的推特上发布自己冠状病毒检测呈阳性. 关键词:新冠病毒  TCP/IP TCP/IP 协议 ...

  3. 互联网之父温顿·瑟夫今日访华

    8月17日,谷歌全球副总裁.Internet奠基人,被誉为"互联网之父"的温顿·瑟夫(Vinton Cerf)博士将第二次访华,并在中国互联网协会与谷歌共同举办的"互联网 ...

  4. 互联网之父:文登•瑟夫

    互联网每一步关键的进化背后,都有一位了不起的的奠基人.现年67岁的文登•瑟夫(Vinton G. Cerf)就是这样一位当之无愧的"互联网之父".他和罗伯特•卡恩一起构建了TCP, ...

  5. 微软副总裁尤瑟夫·梅赫迪对必应和“病”同音的解释

    尊敬的编辑: 7月8日收到阁下的来信,当中谈及一些微软新搜索引擎的问题,你说"Bing"在中文里有负面的含义.没错,我们对这个可能的解释也十分谨慎,所以选择了一个汉语词汇跟&quo ...

  6. java 实现最优二叉树_哈夫曼树(最优二叉树)及其Java实现

    一.定义 一些定义: 节点之间的路径长度:在树中从一个结点到另一个结点所经历的分支,构成了这两个结点间的路径上的经过的分支数称为它的路径长度 树的路径长度:从树的根节点到树中每一结点的路径长度之和.在 ...

  7. java父类子类顺序_java父类子类內部程序的执行顺序

    之前一致沒有認真研究這個問題,今天在研究JAVA類加載順序時突然想好好地研究研究.實驗總結如下: step 1.父類的靜態成員和靜態塊(靜態變量和靜態塊屬同一級,自上而下執行) step 2.子類的靜 ...

  8. java cl 規格_Java JavaCL類代碼示例

    本文整理匯總了Java中com.nativelibs4java.opencl.JavaCL類的典型用法代碼示例.如果您正苦於以下問題:Java JavaCL類的具體用法?Java JavaCL怎麽用? ...

  9. java中string范围_java中long parseLong(String s)方法中string(十进制数字)的范围?

    java中long parseLong(String s)方法中string(十进制数字)的范围? 來源:互聯網  2009-06-19 05:05:28  評論 分類: 電腦/網絡 >> ...

最新文章

  1. c++ vector向量直接赋值_vector-Jacobian product 解释 ---- pytorch autograd
  2. 3d大爱心c语言程序,C语言控制台打印3D爱心图案
  3. Fluid — 云原生环境下的高效“数据物流系统”
  4. 最后8小时 | 最新智能驾驶视觉技术行业研究报告出炉!圈内从业者、投资人不可错过...
  5. WinPcap 获取本地适配器信息
  6. c51单片机矩阵键盘1602计算器_基于51单片机矩阵键盘的简易计算器制作
  7. [渗透测试]扫目录,Sqlmap利用均超时,利用dirb扫描
  8. SpringBoot框架中各层(DTO、DAO、Service、Controller)理解
  9. 生成icon图标 1005 html 左上角icon图标
  10. 腾讯云服务器配置深度学习环境
  11. 学python买什么书-19年学习Python有什么好的书籍推荐吗?
  12. 多种数据库之间的同步工具SymmetricDS
  13. 【python】文件打开中文符问题
  14. A级学科计算机技术,东南大学a类学科排名!附东大a类学科名单
  15. puppeteer 初步实战 测试
  16. 微信扫码关注登录(vue+node+express+mongodb)
  17. 前端监控--vue项目中使用友盟统计监控
  18. pg数据库意外优化一例
  19. 【大数据开发】SparkStreaming——DStream输入源、原语、SparkStream与Kafka和Redis三者的交互
  20. vue 校验表单报错:model is required for validate to wor

热门文章

  1. 关于Mysql 的时区问题
  2. 采用EasyNVR网页无插件互联网直播平台对接海康摄像头如何通过SDK将视频在前端网页上进行播放?
  3. 12中主要的Dropout方法:如何应用于DNNs,CNNs,RNNs中的数学和可视化解释
  4. JXTA技术与应用发展
  5. Linux 入门视频教程
  6. python 幂运算_python幂运算
  7. 8瓶水和3只小老鼠的故事(python解决)思路
  8. 刚子扯谈:我对黑客精神的一些认知
  9. oracle数据库字符集子集与超集对应关系表表
  10. 64匹马,8个赛道,找出跑得最快的4匹马