需求:
写一个函数,输入参数n后,判断n是否为2的N次幂数
代码实现:
#include <stdio.h>
#include <stdlib.h>
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;
}
打印: