首页 > 其他分享 >有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。

有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。

时间:2022-08-20 19:13:45浏览次数:58  
标签:count index 凡报 第几 nums var 报数

 <script>
       // 11.有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),
       //凡报到3的人退出圈子,问最后留下的是原来第几号的那位。
       //写一个数组 存所有的人 
       function fn(n){
        //初始化一个数组
        var nums = []
        for(var i=0;i<n;i++){
            //设置所有的内容都是没有数过的
            nums[i] = false
        }
        //报数
        var count = 0
        var index = 0
        var total = nums.length
        while(total>1){
           if(!nums[index]){
                count++
                //数到了3 将total-1
                if(count==3){
                    count = 0 
                    nums[index] = true //表示已经数到了3
                    total --
                }
           }
           index++
           //数到最后重新循环
           if(index==nums.length){
             index = 0
           }
        }
        //只要拿出里面为false哪个下标就是对应的位置
        for(var index in nums){
            if(!nums[index]){
                return Number(index)+1
            }
        }
       }
       console.log(fn(10)); 
    </script>

标签:count,index,凡报,第几,nums,var,报数
From: https://www.cnblogs.com/gujmnlk/p/16608420.html

相关文章

  • P7960 [NOIP2021] 报数
    简要题意小Z在玩报数游戏,这个游戏有一个规则,就是对于一个正整数\(x\),如果满足\(7\midx\)或\(x\)的十进制写法中含有\(7\)或是十进制写法含有\(7\)的倍数,那么这......
  • AcWing3391.今年第几天?(日期题)
    原题链接https://www.acwing.com/problem/content/3394/日期题思路满足下面条件之一的是闰年:年份是4的整数倍,而且不是100的整数倍;年份是400的整数倍。处理输......