7-1 2的n次方

判断一个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博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值