C算法:实现函数,输入参数n后,判断n是否为2的N次幂数

需求:

写一个函数,输入参数n后,判断n是否为2的N次幂数

代码实现:


#include 
#include 

int nnd(int a,int n)
{
    if(n == 1){
        return a;
    }else{
        return nnd(a,n-1)*a;
    }
}

int ifnn(int num)
{
    int a = 2;
    for(int n = 1; n < num; n++){
        if(nnd(a,n) == num){
            return n;
        }
    }
    return 0;
}

int main ()
{
    int num;
    printf("please input one num:\n");
    scanf("%d",&num);
    int a = ifnn(num);
    if(a > 0){
        printf("num is 2^%d \n",a);
    }else{
        printf("num is not 2^n !");
    };
    
    return 0;
}

打印:

C算法:实现函数,输入参数n后,判断n是否为2的N次幂数_第1张图片

你可能感兴趣的:(算法,c语言,开发语言)