Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

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

Vấn đề

Chúng ta cần viết một hàm JavaScript nhận vào một số n. Hàm sẽ trả về bội số 5 tiếp theo lớn hơn của số đó, được 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ụ

Dưới đây là mã nguồn:

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

Kết quả

35