C语言判断一个数是否是2的幂次方或4的幂次方

如题所述

#include <stdio.h>
#include <math.h>

int main()
{
    int a,i,b=1;
    printf("请输入一个数\n");
    scanf("%d",&a);
    for(i=1;b<=a;i++)
       {
           b*=2;
        if(a==b) break;
        }

    if(a!=b) printf("不是倍数");         //不是2的次方
    else if(i%2==0) printf("4倍数");    //2的偶数次方是4的倍数
    else printf("2倍数");      //2的奇数次方是2的倍数

    return 0;
}

温馨提示:答案为网友推荐,仅供参考
相似回答