#include<stdio.h>
int main(){
int n=0;
printf("请输入一个数:");
scanf("%d",&n);
if((n&(n-1))==0){
printf("%d是2的n次方",n);
}else{
printf("%d不是2的n次方",n);
}
return 0;
}
关键代码:n&(n-1)==0,n&(n-1)的作用是去掉一个1,如果去掉一个1结果为0那么这个数就是2的n次方。
2^1=10
2^2=100
2^3=1000
每个数里面只有一个1