【发布时间】:2021-11-03 17:18:23
【问题描述】:
有一个任务:有几个男孩要打架,如果是偶数,他们分成两组,输了的 - 回家。他们分成两对,打架,然后有人回家,直到他们得到奇数的人。当最后奇数人离开时 - 每个人都与每一个可能的敌人战斗。公式如下:n(n-1)/2。例如 5 个人 - 10 场战斗。
如果从一开始的人数是奇数 - 相同的计数方式:n(n-1)/2。
我已经编写了计算所有可能的战斗次数的脚本,就像这样:
function qwe(number) {
if(number % 2) {
return number = number*(number-1)/2
} else {
number = number / 2;
return number + qwe(number)
}
}
console.log(qwe(6));
但是,如果我知道战斗次数并且想知道这场战斗需要多少人,该怎么办? 反之如何执行这个函数?
【问题讨论】:
-
第一个男孩输掉比赛后,他们不应该停止战斗吗?因为他们变得奇怪
-
示例:12 个人 / 2 6 对战斗 - 6 个获胜者。 6 胜者争夺 - 3 胜者;最后 3 - 3(3/2)/2 = 3 6 + 3 + 3 = 12
标签: javascript algorithm recursion