ในปัญหานี้ เราได้รับจำนวนเต็ม 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