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

ตรวจสอบ Power of Two (เลขยกกำลังสอง) ใน JavaScript

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