在 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.