慕牧羊6158366
2018-03-22 16:30
#include <stdio.h>
int a(int b)
{
if(b==10)
{
return 1;
}
else
{
printf("第%d天猴子剩下的桃子数为%d个\n",b,2*(a(b+1)+1));
return 2*(a(b+1)+1);
}
}
int main()
{
printf("%d\n",a(1));
}
这样为什么得不到正确的结果啊?错在哪?
因为你直接表达式的话就相当于用了两次递归,先声明再用就可以了。
#include <stdio.h>
int a(int b)
{
if(b==10)
{
return 1;
}
else
{
int num=2*(a(b+1)+1);
printf("第%d天猴子剩下的桃子数为%d个\n",b,num);
return num;
}
}
int main()
{
printf("%d\n",a(1));
}
C语言入门
926206 学习 · 20797 问题
相似问题