【C语言】猴子吃桃问题

题目:

猴子第一天吃了若干个桃子,当即吃了一半,还不解馋,又多吃了一个; 第二天,吃剩下的桃子的一半,还不过瘾,又多吃了一个;以后每天都吃前一天剩下的一半多一个,到第10天想再吃时,只剩下一个桃子了。问第一天共吃了多少个桃子?

思路:我们可以采用逆向思维,第十天剩一个,前一天则为 S9 = (S10 +1)*2,以此推算前一天。可以采用递归

Day10--------------------------1

Day9-------------------------- 4

Day8------------------------- 10

Day7-------------------------22

Day6-------------------------46

Day5-------------------------94

Day4-------------------------190

Day3-------------------------382

Day2-------------------------766

Day1-------------------------1534

代码:

#include <stdio.h>
int main()
{
    int day,x1,x2=1;
for(day=9;day>0;day--)
{
x1=(x2+1)*2;
x2=x1;
}
printf("桃子总数:%d\n",x1);
}
 

 

posted @ 2019-12-04 16:29  木子欢儿  阅读(1364)  评论(0编辑  收藏  举报