Computer >> Máy Tính >  >> Lập trình >> Javascript

Bội số tiếp theo của 5 và nối nhị phân trong JavaScript

Vấn đề

Chúng tôi được yêu cầu viết một hàm JavaScript nhận một số n. Hàm của chúng ta sẽ trả về bội số cao hơn tiếp theo của năm số đó, thu được bằng cách nối chuỗi nhị phân ngắn nhất có thể vào cuối biểu diễn nhị phân của số này.

Ví dụ

Sau đây là mã -

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));

Đầu ra

35