猴子吃桃问题--C语言

  • 问题描述: 

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

 方法一:循环处理

  第n天的桃子数量=(第n+1天桃子的数量+1)*2 

int main()
{
	int sum = 1;//第10天还剩1个桃子

	for (int i = 0; i < 9; i++)//10天吃了9次
	{
		sum = (sum + 1) * 2;//第n天的桃子数量=(第n+1天桃子的数量+1)*2
	}
	printf("第一天有%d个桃子", sum);
	return 0;
}

方法二:递归 

 Peach(n)=(Peach(n+1)+1)*2

int Peach(int n)
{
	if (n == 10)
		return 1;
	return (Peach(n + 1) + 1) * 2;
}
int main()
{

	printf("第一天有%d个桃子", Peach(1));
	return 0;
}

 运行结果:

 

你可能感兴趣的:(C语言学习,c语言)