题目描述
检测n是否是2的幂次方
输入格式
第一行有一个整数,m 第二行有m个整数
输出格式
m行,判断是否是 2 的幂次方,如果是则输出YES
,否则输出NO
样例
样例输入:
2
1
2
Copy
样例输出:
YES
YES
Copy
数据范围与提示
long long范围内
由于是二的整数幂那么,这个m值一定是要大于0的,其次由于是整数幂,我们将m
和m-1
做一个&
与运算,答案一定是0,例如,当m为8时,m的二进制为10001000,那么m-1m−1的二进制为:01110111,将这两个数按照二进制与起来答案显然是0的,而且所有的二的整次幂都满足该条件