C語言實現 猴子喫桃問題

猴子喫桃問題:猴子第一天摘下若干個桃子,當即吃了一半,好不過癮,又多吃了一個。第二天早上又吃了剩下的桃子的一半,又多吃了一個。

以後每天都吃了前一天剩下的一半零一個,到第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;
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章