判断一个int型整数是否是2的n次方,如果是则输出n值,否则输出NO!。
输入格式:
输入若干个整数,以空格或换行间隔。
输出格式:
对每一个整数,在一行中输出n值或“NO!”。
输入样例1:
2 8 15
输出样例1:
在这里给出相应的输出。例如:
1
3
No!
输入样例2
-8
0
输出样例2:
在这里给出相应的输出。例如:
3
No!
代码如下:
#include<stdio.h>
#include<math.h>
main(){
long int a,b,c=0,d;
while((scanf("%ld",&a))!=EOF){
if(a<0)
a=a*(-1);
c=0;
for(b=0;;b++){
if(a%2==0&&a!=0){
a=a/2;
c++;
}
else
break;
}
if(a==1)
printf("%ld\n",c);
else
printf("No!\n");
}
}
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:7-1 2的n次方-CSDN博客