Computer >> 컴퓨터 >  >> 프로그램 작성 >> JavaScript

JavaScript의 5의 다음 배수 및 이진 연결

<시간/>

문제

숫자 n을 받는 JavaScript 함수를 작성해야 합니다. 우리의 함수는 가능한 가장 짧은 이진 문자열을 이 숫자의 이진 표현의 끝에 연결하여 얻은 해당 숫자의 다음으로 높은 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