柳青夜明
2019-09-22 20:59
#include <stdio.h>
int getPeachNumber(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;
}
不懂啊
第n天的桃子数为f(n),函数为f(n) = ( f(n+1)+1 )*2
比如 第五天就等于第六天加一总体乘2
int num = getPeachNumber(1)中的(1)对应num = (getPeachNumber(n+1)+1)*2中的(n+1),逐次循环递归,+1)*2对应题目中的运算方式
那么这就要给大家引入一个新的概念——递归,
递归就是一个函数在它的函数体内调用它自身。
执行递归函数将反复调用其自身,每调用一次就进入新的一层。
C语言入门
926210 学习 · 20797 问题
相似问题