罗塞塔代码挑战(freeCodeCamp项目)

2024-07-29T15:20:27

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。

当前页面是本站的「Baidu MIP」版。发表评论请点击:完整版 »