zoukankan      html  css  js  c++  java
  • 【JavaScript】7-28 猴子选大王 (20分)

    题目:

    一群猴子要选新猴王。新猴王的选择方法是:让N只候选猴子围成一圈,从某位置起顺序编号为1~N号。从第1号开始报数,每轮从1报到3,凡报到3的猴子即退出圈子,接着又从紧邻的下一只猴子开始同样的报数。如此不断循环,最后剩下的一只猴子就选为猴王。请问是原来第几号猴子当选猴王?

    输入格式:

    输入在一行中给一个正整数N(≤1000)。

    输出格式:

    在一行中输出当选猴王的编号。

    输入样例:

     11

    输出样例:

     7

    思路:数学方法解约瑟夫环问题

    JavaScript代码:

    const { parse } = require('path')
    var readline = require('readline')
    
    const rl = readline.createInterface({
        input: process.stdin,
        output: process.stdout
    })
    
    rl.on('line', function(line) {
        var N = parseInt(line)    
        var ret = getKing(N)    
        console.log(ret)
    })
    
    function getKing(N) {
        var flag = []
    
        for (let i = 0; i < N; i++) {
            flag[i] = false
        }
        
        var i = 0
        var count = 0
        var total = 0
        while (true) {
            
            if (flag[i] == false) {
                count++
                if (count == 3) {
                    flag[i] = true
                    count = 0
                    total++
                    if (total == N - 1 || N == 1) {
                        break
                    }
                }
            }
            i = (i + 1) % N
        }
    
        var ret = 0
        for (let i = 0; i < flag.length; i++) {
            if (flag[i] == false) {
                ret = i
                break
            }
        }
    
        return ret + 1
    }
  • 相关阅读:
    Android Studio代码自己主动检測错误提示
    uva 1567
    UWP 新手教程2——怎样实现自适应用户界面
    远程服务的使用场景
    本地服务和远程服务
    本地应用调用远程服务中的方法
    混合方式开启服务
    绑定服务抽取接口
    绑定服务调用服务里的方法
    bind绑定服务的生命周期
  • 原文地址:https://www.cnblogs.com/moonskies/p/14330360.html
Copyright © 2011-2022 走看看