有同学问过我一个应用题,关于猴子吃桃:

    猴子第一天摘下若干个桃子,当即吃了一半,好不过瘾,又多吃了一个,第二天早上又吃了剩下的桃子的一半,又多吃了一个。以后每天都吃了前一天剩下的一半零一个,到第 10 天早上想再吃的时候,就剩下一个桃子。求第一天共摘多少个桃子?

    思路:这个题我觉得可以反向来思考它,首先我们从最后一天分析,第10天早上只剩下1个桃子,那么第9天早上吃了第8天的一半又多一个,则第9天吃的时候应该有4个,第8天应该有10个桃子,但吃了第7天的一半多一个,则第7天应该有(10+1)*2=22个。

由此我们发现了规律: 1 4 10 ......(i+1)*2     i表示该数上一个数的值

通过分析我们需要用到循环来解决此问题:

#include <stdio.h>
int main()
{
	int m = 1;                       //第10天的1个桃子
	int i = 0;
	while ( i < 9 )                  //剩余9天的我们通过循环算出来
	{
		m = ( m + 1 ) * 2;
		i++;                     
	}
	printf( "%d\n", m );             //最终得出最开始有多少桃子
	return 0;
}