C 練習(xí)實(shí)例21
題目:猴子吃桃問題:猴子第一天摘下若干個(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
更多建議: