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