C 練習(xí)實(shí)例21

C 語言經(jīng)典100例 C 語言經(jīng)典100例

題目:猴子吃桃問題:猴子第一天摘下若干個(gè)桃子,當(dāng)即吃了一半,還不癮,又多吃了一個(gè)?第二天早上又將剩下的桃子吃掉一半,又多吃了一個(gè)。以后每天早上都吃了前一天剩下?的一半零一個(gè)。到第10天早上想再吃時(shí),見只剩下一個(gè)桃子了。求第一天共摘了多少。

程序分析:采取逆向思維的方法,從后往前推斷。

1) 設(shè)x1為前一天桃子數(shù),設(shè)x2為第二天桃子數(shù), 則:

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

x3=x2/2-1, x2=(x3+1)*2

以此類推: x前=(x后+1)*2

2) 從第10天可以類推到第1天,是一個(gè)循環(huán)過程。

程序源代碼:

//  Created by o2fo.com on 15/11/9.
//  Copyright © 2015年 W3Cschool教程. All rights reserved.
//

#include <stdio.h>
#include <stdlib.h>
int main(){
    int day, x1 = 0, x2;
    day=9;
    x2=1;
    while(day>0) {
        x1=(x2+1)*2;  // 第一天的桃子數(shù)是第2天桃子數(shù)加1后的2倍
        x2=x1;
        day--;
    }
    printf("總數(shù)為 %d\n",x1);
    
    return 0;
}

以上實(shí)例輸出結(jié)果為:

總數(shù)為 1534

C 語言經(jīng)典100例 C 語言經(jīng)典100例