猴子喫桃問題:猴子第一天摘下若干個桃子,當即吃了一半,好不過癮,又多吃了一個。第二天早上又吃了剩下的桃子的一半,又多吃了一個。
以後每天都吃了前一天剩下的一半零一個,到第10天早上想再喫的時候,就剩下一個桃子。求第一天共摘多少個桃子?
這個問題可以逆向考慮,每天喫一半+1個,那麼前一天的桃子量就是後一天的量+1在*2.往前循環,就可以得出第一天有多少桃子。
代碼實現如下:
#include<stdio.h>
int main()
{
int day1 = 0;
int day2 = 1;
int i;
for(i = 1;i <= 9;i++)
{
day1 = (day2 + 1) * 2; //可以反着來看 (day1/2)- 1 = day2
day2 = day1;
}
printf("%d\n",day1);
return 0;
}