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 次瀏覽

開啟你的 職業生涯

完成課程並獲得認證

開始入門
廣告