ในปัญหานี้ เราได้รับจำนวนเต็ม N หน้าที่ของเราคือ ค้นหาว่าจำนวนเต็มที่กำหนดให้เป็นยกกำลัง 4 หรือไม่ .
มาดูตัวอย่างเพื่อทำความเข้าใจปัญหากัน
Input : N = 64 Output : Yes
คำอธิบาย −
43 = 64
แนวทางการแก้ปัญหา
วิธีแก้ปัญหาอย่างง่ายคือการหารตัวเลขซ้ำด้วย 4 และตรวจสอบว่าจำนวนผลลัพธ์หารด้วย 4 หรือไม่ หากค่าหลังการหารแบบเรียกซ้ำกลายเป็น 1 ให้คืนค่าเป็น จริง
ตัวอย่าง
โปรแกรมเพื่อแสดงการทำงานของโซลูชันของเรา
#include <iostream> using namespace std; bool isPowerOf4(int n){ if(n == 0) return 0; while(n != 1) { if(n % 4 != 0) return 0; n = n / 4; } return 1; } int main(){ int n = 123454; if (isPowerOf4(n)) cout<<"The number is a power of 4"; else cout<<"The number is not a power of 4"; return 0; }
ผลลัพธ์
The number is not a power of 4