猴子吃桃問題。猴子第1天摘下若干個桃子,當即吃了一半,還不過癮,又多吃了一個。第2天早上又將剩下的桃子吃掉一半,又多吃了一個。以后每天早上都吃了前一天剩下的一半零一個。到第10天早上想再吃時,就只剩一個桃子了。求第1天共摘多少個桃子?


猴子吃桃問題。猴子第1天摘下若干個桃子,當即吃了一半,還不過癮,又多吃了一個。第2天早上又將剩下的桃子吃掉一半,又多吃了一個。以后每天早上都吃了前一天剩下的一半零一個。到第10天早上想再吃時,就只剩一個桃子了。求第1天共摘多少個桃子。

答案解析:

從題面上來看,可以推出,后一天的桃子數量 = 前一天桃子數量 / 2 - 1。所以,該公式也可以寫成前一天的桃子數量 = (后一天桃子數量+1) * 2。所以我們知道了第10天剩余桃子的數量,則可以依次推算出桃子的前一天桃子的總數。需要注意的點,猴子只是吃了9天,所以,我們只需要遍歷9次就可以了。

代碼示例:

#include <stdio.h>

int main()
{
	int day = 9;
	int prev_day_count;
	int cur_day_count = 1;
	while (day > 0)
	{
		prev_day_count = (cur_day_count + 1) * 2;
		cur_day_count = prev_day_count;
		day--;
	}
	printf("total count : %d\n", cur_day_count);
	return 0;
}

運行截圖:

猴子吃桃問題。猴子第1天摘下若干個桃子,當即吃了一半,還不過癮,又多吃了一個。第2天早上又將剩下的桃子吃掉一半,又多吃了一個。以后每天早上都吃了前一天剩下的一半零一個。到第10天早上想再吃時,就只剩一個桃子了。求第1天共摘多少個桃子


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM