เราจำเป็นต้องเขียนฟังก์ชัน เช่น isPowerOfTwo() ที่ใช้จำนวนบวกและคืนค่าบูลีนโดยพิจารณาจากข้อเท็จจริงว่าตัวเลขนั้นเป็นกำลัง 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