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
廣告