采用逆向思维:
/* 猴子吃桃子问题。猴子第一天摘下若干个桃,当即吃掉一半,又多吃一个。 第二天早上又将剩下的一半吃掉一半,又多吃一个。以后每天早上都吃了 前天剩下的一半零一个,到第10天早上只剩下最后一个桃。问第一天摘了几个桃。 */ #include<stdio.h> int main() { int sum;//桃子的总数 int day = 9;//天数 int temp=1; while(day!=0) { //第10天是1个桃子,则第9天的桃子数=(第10天剩余桃子数+1)后的2倍 temp =2*(temp+1);//第一天的桃子数是第2天桃子数加1后的2倍 day--; } sum = temp; printf("%d\n",sum);//答案是1534个桃子 return 0; }
时间: 2024-11-02 12:08:21