慕仰103958
2018-11-22 01:20
#include <stdio.h>
int getPeachNumber(int n) //这里要定义n,要不编译器会报错!
{
int num;
if(n==10)
{
return 1;
}
else
{
num = (getPeachNumber(n+1)+1)*2;
printf("第%d天所剩桃子%d个\n", n, num);
}
return num;
}
int main()
{
int num = getPeachNumber(1);
printf("猴子第一天摘了:%d个桃子。\n", num);
return 0;
根据 (getPeachNumber(n+1)+1)*2; n=1
那第九天不是应该(1+1)+1)*2=6
有6个桃子吗,这4是怎么来的 纠结啊
n+1不是n+1个桃子,而是代表第十天,getpeachnumber(n)为第九天时,n+1就是第十天所吃桃子的函数,不是单纯n+1
if(n==10)
{
return 1;
}
假设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
第一天早上有1534个中午吃一半有767晚上吃一个有766个
到第二天早上有766个中午吃一半有383晚上吃一个有382个
以此类推到第九天早上有4个中午吃一半有2晚上吃一个有1个
到第十天就剩下一个了
C语言入门
926020 学习 · 20793 问题
相似问题