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

ตรวจสอบบิตสลับกันในจำนวนเต็มด้วย JavaScript


ปัญหา

เราต้องเขียนฟังก์ชัน JavaScript ที่รับจำนวนเต็ม num เป็นอาร์กิวเมนต์เดียว

ฟังก์ชันควรตรวจสอบว่ารูปแบบไบนารีของ num มีบิตสลับกันหรือไม่ กล่าวคือ บิตติดกันสองบิตจะมีค่าต่างกันเสมอ

ตัวอย่างเช่น หากอินพุตคือ

Input

const num = 5;

Output

const output = true;

คำอธิบายผลลัพธ์

เพราะรูปแบบไบนารีของ 5 คือ 101 ซึ่งมีบิตสลับกัน

ตัวอย่าง

โค้ดด้านล่างนี้

const num = 5; 
const isAlternating = (num = 1) => {
  const binary = num.toString(2);
  let curr = binary[0];
  for(let i = 1; i < binary.length; i++){
    const el = binary[i];
    if(curr !== el){
      curr = el;
      continue;
    }
    return false;
  }
  return true;
};
console.log(isAlternating(num));

ผลลัพธ์

true