输入5,3
输出
pow(5,0)=1
pow(5,1)=5
pow(5,2)=25
pow(5,3)=125
我的代码运行超时了,答案正确的,求解决
#include <stdio.h>
int main()
{
int m,n;
int power(int a,int b);
scanf("%d,%d",&m,&n);
for(int i = 0; i <= n; i ++)
printf("power(%d, %d) = %d\n", m, i, power(m, i));
}
int power(int a,int b)
{
int t;
if(b==1)
t=a;
else if(b==0)
t=1;
else
t=a*power(a,b-1);
return(t);
}
你是在测试平台超时了吧,你用了递归,所以可能超时
可以换成循环试试
scanf("%d,%d",&m,&n);改成scanf("%d%d",&m,&n);
中间逗号去掉
#include <stdio.h>
int main()
{
int m,n;
int power(int a,int b);
scanf("%d%d",&m,&n);
for(int i = 0; i <= n; i ++)
printf("power(%d,%d)=%d\n", m, i, power(m, i));
}
int power(int a,int b)
{
int t;
if(b==1)
t=a;
else if(b==0)
t=1;
else
t=a*power(a,b-1);
return(t);
}