C++程序,用于判断一个数字是否为2的幂
检查一个给定的数字是否是2的幂。首先检查以下哪些数字是2的幂,哪些不是。此代码检查该数字是否是奇数,然后同时对其进行除法,直到它变为0或奇数。如果它变为0,则它是2的幂,否则不是。
一个更好的选择是取该数字的对数。如果是整数,则n是2的幂,否则不是。2的幂的数字
2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048 ... 22 = 4 25 = 32 210 = 1024
Input: 8 Output: Number is power of 2
说明
一种简单的方法是直接取该数字以2为底的对数,如果得到一个整数,则该数字是2的幂。
通过不断用2对N进行除法,如果N是偶数。如果最后它变为1,则N是2的幂
示例
#include <iostream> using namespace std; int main() { int n=8; if(n>0) { while(n%2 == 0) { n/=2; } if(n == 1) { cout<<"Number is power of 2"<<endl; } } if(n == 0 || n != 1) { cout<<"Number is not power of 2"<<endl; } return 0; }
广告