JavaScript 中的 2 键键盘问题


假设以下情况 −

最初记事本中只存在一个字符‘A’。我们可以在该记事本上对每一步执行两个操作−


  • 全部复制 − 我们可以复制记事本中存在的全部字符(不允许部分复制)。

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

我们需要编写一个 JavaScript 函数,它将一个数字(我们称之为 num)作为唯一参数。我们的函数需要计算并返回打印‘A’ num 次所需的最小步数(全部复制或粘贴)。

例如 −

如果输入数字是 −

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

更新于: 2021 年 2 月 24 日

170 次浏览

开启你的 职业生涯

完成课程并获得认证

开始入门
广告