程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C >> C練習實例 >> C 練習實例21

C 練習實例21

編輯:C練習實例

C 練習實例21

題目:猴子吃桃問題:猴子第一天摘下若干個桃子,當即吃了一半,還不瘾,又多吃了一個
第二天早上又將剩下的桃子吃掉一半,又多吃了一個。以後每天早上都吃了前一天剩下
的一半零一個。到第10天早上想再吃時,見只剩下一個桃子了。求第一天共摘了多少。

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

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

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

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

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

2) 從第10天可以類推到第1天,是一個循環過程。

程序源代碼:

//  Created by www.runoob.com on 15/11/9.
//  Copyright © 2015年 菜鳥教程. 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;  // 第一天的桃子數是第2天桃子數加1後的2倍
        x2=x1;
        day--;
    }
    printf("總數為 %d\n",x1);
    
    return 0;
}

以上實例輸出結果為:

總數為 1534

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved