C语言中 输入一个数 判断这个数是否为3的N次方 求代码

如题所述

#include <stdio.h>int isThreeN(int num, int* t); // num为输入的数,t用来返回次方void main(){ int n, t; printf("请输入一个整数:"); scanf("%d", &n); if(isThreeN(n, &t)) printf("%d是3的%d次方\n", n, t); else printf("%d不是3的次方\n", n);} int isThreeN(int num, int* t){ *t = 0; do { num /= 3; (*t)++; } while(num > 3); if(num % 3 == 0 || num == 1) return 1; return 0;}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-12-31
程序如下: #include<stdio.h>
void main()
{
int n;
printf("输入一个数字:\n");
scanf("%d",&n);
if(0==n%3)
printf("%d是3的N倍\n",n);
else
printf("%d不是3的N倍\n",n);
}
第2个回答  2016-04-07
实在看不下去了
void main()
{
int n;
printf("输入一个数字:\n");
scanf("%d",&n);
if(n<=0) printf("NO");
if(n ==1)printf("YES");
while(0==n%3){
n=n/3;
if(n == 1) printf("YES");
}
printf("NO");
}

我想找一种答案: 不需要while loop 和recursive的方法。
第3个回答  2013-12-31
我可编程,留联系方式发给你
第4个回答  2013-12-31
#include<stdio.h>
main()
{int a,b;<br/>scanf(﹪d,&a);<br/>b﹦a﹪3;<br/>if(b﹦﹦0)printf(“OK!”);<br/>else printf(“NO!”);}