在 JavaScript 中下一個 5 的倍數和二進位制連線


問題

要求我們編寫一個 JavaScript 函式,其中包含一個數字 n。我們的函式應該返回該數字的下一個高 5 的倍數,該倍數是透過將最短的可能二進位制字串連線到此數字的二進位制表示的末尾來獲得的。

範例

以下為程式碼 -

const generateAll = (num = 1) => {
   const res = [];
   let max = parseInt("1".repeat(num), 2);
   for(let i = 0; i <= max; i++){
      res.push(i.toString(2).padStart(num, '0'));
   };
   return res;
};
const smallestMultiple = (num = 1) => {
   const numBinary = num.toString(2);
   let i = 1;
   while(true){
      const perm = generateAll(i);
      const required = perm.find(binary => {
         return parseInt(numBinary + binary, 2) % 5 === 0;
      });
      if(required){
         return parseInt(numBinary + required, 2);
      };
      i++;
   };
};
console.log(smallestMultiple(8));

輸出

35

更新於: 2021 年 4 月 19 日

77 次瀏覽

開啟你的 職業生涯

完成課程認證

開始學習
廣告
© . All rights reserved.