共计 546 个字符,预计需要花费 2 分钟才能阅读完成。
100 门
有 100 扇门,最初都是关闭的。你要通过这些门 100 次,第一次通过,访问每一扇门并“切换”门(如果门关闭,打开它;如果它打开,关闭它)。第二次,只访问 2 倍数的门(即门 #2 #4 #6…)。第三次,只访问 3 倍数的门(即门 #3 #6 #9…),直到只访问 100 倍数的门。
实现一个函数,以确定最后一次通过后门的状态。以数组形式返回最终结果,数组中只包含打开的门的门号。
function getFinalOpenedDoors(numDoors) {let doors = []
for (let i = 0; i < 100; i++) doors[i] = false
for (let i = 1; i <= 100; i++) for (let i2 = i - 1; i2 < 100; i2 += i) doors[i2] = !doors[i2]
for (let i = 0; i < 100; i++) doors[i] = doors[i] ? i + 1 : 0
return doors.filter((door) => door > 0)
}
24 点游戏
实现一个函数,该函数将一个四位数的字符串作为其参数,每个数字从 1 到 9 并允许重复,返回一个计算结果为数字 24 的算术表达式(只允许使用 * / + – ())。如果不存在这样的解,则返回“没有解决方案”。
举例:solve24(“4878”) 输出 (7-8/8)*4。
正文完