C语言笔试题(12)——猴子吃桃问题

来源:互联网 发布:扬尘检测仪规定数据 编辑:程序博客网 时间:2024/04/30 02:04

       猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少?

分析:

到第九天吃完桃子后,还剩下一个桃子,假设第一天摘下x1个,吃完后剩下x2个即第二天的桃子数量,x1与x2符合 x1 - ((x1 / 2) + 1) = x2,即 x1 = (x2 + 1) * 2;所以每天跟前一天的关系都是这样的,因此可以写出以下代码:


#include <stdio.h>int main(int argc, const char *argv[]){    int day = 9;    int x1, x2 = 1;    while(day > 0)    {        x1 = (x2 + 1) * 2;        x2 = x1;        day--;    }    printf("the first day : %d\n", x1);    return 0;}



原创粉丝点击