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

程序分析:采取逆向思维的方法,从后往前推断。

  1. 设x1为前一天桃子数,设x2为第二天桃子数,则:

x2 = x1/2 - 1 x1 = (x2 + 1) * 2

  1. 从第10天可以类推到第1天,形成一个循环过程。

实例:

#include <stdio.h>

int main() {
    int day, x1 = 0, x2;
    day = 9;
    x2 = 1;
    
    while (day > 0) {
        x1 = (x2 + 1) * 2;  // 第一天的桃子数是第二天桃子数加1后的2倍
        x2 = x1;
        day--;
    }
    
    printf("第一天共摘了 %d 个桃子\n", x1);
    
    return 0;
}

以上程序的输出结果为:

第一天共摘了 1534 个桃子

标签: c语言, c语言教程, c语言技术, c语言学习, c语言学习教程, c语言下载, c语言开发, c语言入门教程, c语言进阶教程, c语言高级教程, c语言面试题, c语言笔试题, c语言编程思想, c语言练习, c语言练习题