ปัญหา
เราต้องเขียนฟังก์ชัน 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