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

约瑟夫环数组简易编程

作者: 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

    相关文章

      网友评论

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

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