美文网首页
约瑟夫环数组简易编程

约瑟夫环数组简易编程

作者: Farewell_V587 | 来源:发表于2017-09-21 21:45 被阅读0次

耶稣有13个门徒,其中有一个就是出卖耶稣的叛徒,请用排除法找出这位叛徒:13人围坐一圈,从第一个开始报号:1,2,3,1,2,3…。凡是报到“3”就退出圈子,最后留在圈子内的人就是出卖耶稣的叛徒。

思路
  • 一群人围在一起坐成
    2、从1开始报数
    3、数到3的时候,此人出列,下一个人重新报数
    4、一直循环,直到所有人出列

1.创建一个数量为13的数组,创建count变量当做报的数,创建p当做承载arr[0]变量的数;

var arr = [1,1,1,1,1,1,1,1,1,1,1,1,1];
var count=0;var p=0;

2.遍历数组

for(var i=0;i<arr.length;i++){}

3.开始报数

 for(var i=0;i<arr.length;i++){count%3+1;}
  1. 报数为4的时候,令变为1.
    for(var i=0;i<arr.length;i++){count%3+1;if(count==4){  count=0; }}

5.判断报数为3的人,会被踢出圈子。踢出圈子的人内容要标记为0

for(var i=0;i<arr.length;i++){count%3+1;if(count==4){  count=0; } if(count==3){arr[i]=0; }}

6.判断/每出圈一个人记录。只剩最后一个人的时候退出循环。

    for(var i=0;i<arr.length;i++){count%3+1;if(count==4){  count=0; } if(count==3){arr[i]=0; p++;if(p==arr.length-1){ break; }}}

7.判断当arr[i]=1;时候

if(arr[i]==1){}

8.判断当一轮结束后,重新开始一轮

  if(i==arr.length-1){
            i=-1;
        }
image.png

相关文章

  • 约瑟夫环数组简易编程

    耶稣有13个门徒,其中有一个就是出卖耶稣的叛徒,请用排除法找出这位叛徒:13人围坐一圈,从第一个开始报号:1,2,...

  • 约瑟夫环问题

    约瑟夫环问题约瑟夫环描述:约瑟夫环(约瑟夫问题)是一个数学的应用问题:已知n个人(以编号1,2,3…n分别表示)围...

  • 循环单链表实现约瑟夫环(C语言)

    约瑟夫环

  • 约瑟夫环

    题目:100名学生围成一个圈, 编号从1到100,从第一名学生开始报数,从1-9报数 每报出9就退出,直到所有学生...

  • 约瑟夫环

  • 约瑟夫环

    问题:1~n个人围成一圈,从1开始报数,每次数到m这个人就出列,问最后剩下的是几号? 做法:递归。 假设剩下的是f...

  • 约瑟夫环

    解法一 用一个list模拟删除过程 解法二 数学公式,推到过程还没看懂

  • 约瑟夫环

    之前去面试的时候遇到这个问题,作为一只算法渣渣,自然带着恐惧的心情,然后自己瞎捣鼓了好长时间终于拼凑出来了一个很菜...

  • 约瑟夫环

  • 约瑟夫环

    复习一下关于约瑟夫环的实现原理: 如果用C来写的话,也会有许多的方法,比如1:采用链表(双向链表)2:递归3:队列...

网友评论

      本文标题:约瑟夫环数组简易编程

      本文链接:https://www.haomeiwen.com/subject/eugtextx.html