JavaScript中的2键键盘问题

假设以下情况-

最初在记事本上只有一个字符“ A”。我们可以在此记事本上为每个步骤执行两项操作-

  • 全部复制 -我们可以复制记事本上的所有字符(不允许部分复制)。

  • 粘贴-我们可以粘贴上次复制的字符。

我们需要编写一个接受数字的JavaScript函数,我们将其称为num作为唯一参数。我们的函数需要计算并返回打印“ A”次的最小步骤数(全部复制或粘贴)。

例如-

如果输入号码是-

const num = 3;

那么输出应该是-

const output = 3;

因为,步骤是-

  • 全部复制(结果:“ A”)

  • 全部粘贴(结果:“ AA”)

  • 全部粘贴(结果:“ AAA”)

示例

为此的代码将是-

const num = 3;
const minimumSteps = (num = 1) => {
   let [curr, copy, steps] = [1, 0, 0];
   while(curr != num){
      if((copy < curr) && ((num - curr) % curr) == 0) {
         copy = curr;
      }else{
         curr += copy;
      };
      steps += 1;
   };
   return steps;
};
console.log(minimumSteps(num));
输出结果

控制台中的输出将是-

3