遞歸函數(shù)(二) 希望解惑
#include <stdio.h>
int getPeachNumber(int n)? //這里要定義n,要不編譯器會(huì)報(bào)錯(cuò)!
{
? ? int num;? ??
? ? if(n==10)
? ? {
? ? ? ?return 1;? ? ??
? ? }?
? ? else
? ? {
? ? ? ? num = (getPeachNumber(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;
根據(jù)?(getPeachNumber(n+1)+1)*2;? ? n=1
那第九天不是應(yīng)該(1+1)+1)*2=6
有6個(gè)桃子嗎,這4是怎么來(lái)的? ?糾結(jié)啊
2018-12-20
n+1不是n+1個(gè)桃子,而是代表第十天,getpeachnumber(n)為第九天時(shí),n+1就是第十天所吃桃子的函數(shù),不是單純n+1
2018-11-24
if(n==10)
? ? {
? ? ? ?return 1;? ? ??
? ? }?
假設(shè)n=9
num = (getPeachNumber(n+1)+1)*2; ? ?getPeachNumber(n+1)=getPeachNumber(9+1)=getPeachNumber(10)=1
所以第九天(getPeachNumber(n+1)+1)*2=(1+1)*2=4
2018-11-22
第一天早上有1534個(gè)中午吃一半有767晚上吃一個(gè)有766個(gè)
到第二天早上有766個(gè)中午吃一半有383晚上吃一個(gè)有382個(gè)
以此類推到第九天早上有4個(gè)中午吃一半有2晚上吃一個(gè)有1個(gè)
到第十天就剩下一個(gè)了