Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

หาคูณของ 5 ถัดไปและการต่อสตริงไบนารีใน JavaScript


ปัญหา

เราต้องเขียนฟังก์ชัน JavaScript ที่รับตัวเลข n ฟังก์ชันควรคืนค่าคูณของ 5 ที่มากกว่า n และใกล้ที่สุด โดยได้มาจากการต่อสตริงไบนารีที่สั้นที่สุดไปท้ายของการแทนไบนารีของ 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));

ผลลัพธ์

35