เราต้องเขียนฟังก์ชัน isPowerOfTwo() ที่รับตัวเลขบวกและคืนค่า boolean ว่าตัวเลขนั้นเป็นกำลังของ 2 หรือไม่
ตัวอย่างเช่น:
console.log(isPowerOfTwo(3)); // false console.log(isPowerOfTwo(32)); // true console.log(isPowerOfTwo(2048)); // true console.log(isPowerOfTwo(256)); // true console.log(isPowerOfTwo(22)); // false
มาเขียนโค้ดสำหรับฟังก์ชันนี้ จะเป็นฟังก์ชันเรียกซ้ำที่เรียกซ้ำจนกว่าตัวเลขจะหาร 2 ไม่ลงตัว ถ้าในกระบวนการนี้ตัวเลขลดลงจนเหลือ 1 แสดงว่าเป็นกำลังของ 2 มิฉะนั้นไม่ใช่ โค้ดจะเป็นดังนี้:
ตัวอย่างโค้ด
const isPowerOfTwo = num => {
if (num === 1) {
return true;
}
if (num % 2 !== 0) {
return false;
}
return isPowerOfTwo(num / 2);
};
console.log(isPowerOfTwo(3));
console.log(isPowerOfTwo(32));
console.log(isPowerOfTwo(2048));
console.log(isPowerOfTwo(256));
console.log(isPowerOfTwo(22));
ผลลัพธ์
ผลลัพธ์ในคอนโซลจะเป็นดังนี้:
false true true true false