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

Power of Four ใน C++

แนวคิด

สมมติว่ามีจำนวนเต็ม ให้ตรวจสอบว่าเป็นกำลังของ 4 หรือไม่

เช่น ถ้าอินพุตคือ 16 ผลลัพธ์คือ True

วิธีแก้:

  • ถ้า num < 0: คืนค่า false
  • ถ้า num & (num - 1) ไม่เป็นศูนย์: คืนค่า false
  • ถ้า (num & 01010101010101010101010101010101) เป็นศูนย์: คืนค่า false
  • คืนค่า true

ตัวอย่าง

#include <bits/stdc++.h>
using namespace std;
class Solution {
public:
    bool isPowerOfFour(int num){
        if (num < 0) return false;
        if (num & (num - 1)) return false;
        if (!(num & 0x55555555)) return false;
        return true;
    }
};
main() {
    Solution ob;
    cout << (ob.isPowerOfFour(64));
}

อินพุต

64

เอาต์พุต

1