检查一个数字是否可以用 C++ 中的 2 的非零次幂之和表示
在这里我们将看到,如果我们可以将一个数字表示为两个非零 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
广告
数据结构
网络
关系数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP