求大神解答
#include <stdio.h>
int getPeachNumber(n)
{
? ? int num;? ??
? ? if(n==10)
? ? {
? ? ? return 1;(為什么這里要用return 1;?我寫的時(shí)候用的是break;為什么會(huì)提示錯(cuò)誤)
? ? }?
? ? else
? ? {
? ? ? ? num = (getPeachNumber(n+1)+1)*2; ? (這個(gè)函數(shù)放在這里是干嘛的?在函數(shù)里面也可以調(diào)用函數(shù)嗎?不可以用num=((n+1)+1)*2嗎?)
? ? ? ? printf("第%d天所剩桃子%d個(gè)\n", n, num);?
? ? }
? ? return num;
}
int main()
{
? ? int num = getPeachNumber(1);
? ? printf("猴子第一天摘了:%d個(gè)桃子。\n", num);
? ? return 0;
}
2018-03-10
num=(getpeachnumber(n+1)+1)*2,為何要這樣用,不能是num=getpeachnumber((n+1)+1)*2嗎,還有就是為何不是(n+1)*2
2018-01-29
因?yàn)轭}目要求用函數(shù)遞歸來解決這個(gè)問題,遞歸就是函數(shù)自己調(diào)用自己本身的這個(gè)函數(shù)。所以用num=(getPeachNumber(n+1)+1)*2來實(shí)現(xiàn)函數(shù)遞歸,因?yàn)轭}目說第十天只剩下1個(gè)桃子,所以當(dāng)n=10的時(shí)候就要返回1這個(gè)結(jié)果。return后面不能寫break,int函數(shù)它return的結(jié)果也必須是int,函數(shù)可以調(diào)用除了main以外所有聲明定義的函數(shù)。