慕仙304615
2018-01-29 14:06
#include <stdio.h>
int getPeachNumber(n)
{
int num;
if(n==10)
{
return 1;(为什么这里要用return 1; 我写的时候用的是break;为什么会提示错误)
}
else
{
num = (getPeachNumber(n+1)+1)*2; (这个函数放在这里是干嘛的?在函数里面也可以调用函数吗?不可以用num=((n+1)+1)*2吗?)
printf("第%d天所剩桃子%d个\n", n, num);
}
return num;
}
int main()
{
int num = getPeachNumber(1);
printf("猴子第一天摘了:%d个桃子。\n", num);
return 0;
}
num=(getpeachnumber(n+1)+1)*2,为何要这样用,不能是num=getpeachnumber((n+1)+1)*2吗,还有就是为何不是(n+1)*2
因为题目要求用函数递归来解决这个问题,递归就是函数自己调用自己本身的这个函数。所以用num=(getPeachNumber(n+1)+1)*2来实现函数递归,因为题目说第十天只剩下1个桃子,所以当n=10的时候就要返回1这个结果。return后面不能写break,int函数它return的结果也必须是int,函数可以调用除了main以外所有声明定义的函数。
C语言入门
926286 学习 · 20799 问题
相似问题