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: 数字是2的幂
说明
一种简单的方法是简单地以2为底的数字取对数,如果得到整数,则该数字为2的幂。
如果N是偶数,只需简单地将N除以2。如果以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<<"数字是2的幂"<<endl; } } if(n == 0 || n != 1) { cout<<"数字不是2的幂"<<endl; } return 0; }