求大神解答
#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;
}
2018-03-10
num=(getpeachnumber(n+1)+1)*2,為何要這樣用,不能是num=getpeachnumber((n+1)+1)*2嗎,還有就是為何不是(n+1)*2
2018-01-29
因為題目要求用函數遞歸來解決這個問題,遞歸就是函數自己調用自己本身的這個函數。所以用num=(getPeachNumber(n+1)+1)*2來實現函數遞歸,因為題目說第十天只剩下1個桃子,所以當n=10的時候就要返回1這個結果。return后面不能寫break,int函數它return的結果也必須是int,函數可以調用除了main以外所有聲明定義的函數。