檢查一個數字能否表示為 2^x + 2^y (C++)
在這裡,我們將看到,如果我們可以將一個數字表示為兩個非零 2 的冪的和。因此,我們將檢查給定的數字 N 是否可以表示為 (2x + 2y),其中 x, y > 0。例如,數字 10 可以表示為 23 + 21。
方法很簡單。有兩種情況。如果數字 n 為偶數,它可以表示為 2x,其中 x > 0。另一種情況是 N 為奇數,它永遠不能表示為 2 的冪的和。我們不能使用 0 次冪,所以我們得不到奇數。所有奇數的二進位制表示的最低有效位都是 1。
示例
#include <iostream>
using namespace std;
bool isSumofTwosPower(int n) {
if((n & 1) == 0){
return true;
}else{
return false;
}
}
int main() {
int num = 86;
if(isSumofTwosPower(num)){
cout << "Can be represented";
}else{
cout << "Cannot be represented";
}
}輸出
Can be represented
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP