C语言转化方程。 猴子摘桃

Python013

C语言转化方程。 猴子摘桃,第1张

这道题我的c语言书上有。给你看一下:

假设第一天有a1个桃,第二天有a2个,……,第九天有a9个,第10天有a10个。在这里面只有a10=1是知道的,我们要计算a1,而我们可以看出,a1~a10存在着简单的联系:

a9=2(a10 1)

a8=2(a9 1)

a7=2(a8 1)

a1=2(a2 1)

由此我们可以看出这是一个递推关系。

猴子摘桃问题

猴子第一天摘下N个桃子,当时就吃了一半,还不过瘾,就又多吃了一个。第二天又将剩下的桃子吃掉一半,又多吃了一个。以后每天都吃前一天剩下的一半零一个。到第10天在想吃的时候就剩一个桃子了,问第一天共摘下来多少个桃子?

#include <stdio.h>  

int getPeachNumber (n) {  

int num /* 定义所剩桃子数 */

if(n==10)

       return 1 /*递归结束条件 */

    else {  

num = getPeachNumber(n+1)*2 + 2 /* 递归 */

printf("第%d天所剩桃子%d个\n", n, num) /* 天数,所剩桃子个数 */

}

return num

}

int main (void) {  

int num = getPeachNumber(1)  

printf("猴子第一天摘了%d个桃子。\n", num)

getch () /* 屏幕暂留 */

return 0  

}

运行结果