7-1 这是2的幂么? (10 分)
在类Tool中定义一个方法 isPower,要求对于形参num(num>0),判断num是不是2的幂,如果是返回true,否则返回false 在Main类中main方法中调用此方法,输入一个大于0的整数,调用isPower方法,如果是2的幂,输出yes,否则输出no 输入如果是0或者小于0的整数,输出error
输入格式:
输入一个整数例如5
输出格式:
输出结果例如no
输入样例:
在这里给出一组输入。例如:
15
结尾无空行
8
结尾无空行
-4
结尾无空行
输出样例:
在这里给出相应的输出。例如:
no
结尾无空行
yes
结尾无空行
error
结尾无空行
代码:
#include <iostream>
using namespace std;
int main() {
int n;
cin >> n;
if(n <= 0) {
cout << "error" << endl;
} else {
//位运算&的优先级低,必须加括号
cout << ((n & (-n)) == n ? "yes" : "no") << endl;
//也可((n & (n - 1)) == 0 ? "yes" : "no")
}
return 0;
}