猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘多少桃子。
递归法解决====================
#include <stdio.h>
int i=10;//吃了10天
void eat(n)
{
if (--i)//第几天
eat((n+1)*2);//每一天都是 总数n/2-1 反过来说,第十天是第九天的(n+1)*2个!
else
printf ("桃子一共有:%d个!\n",n);
}
void main()
{
eat(1);//最后一天剩1个桃子。
}
循环法解决=====================
#include <stdio.h>
void main()
{
int i=10,n=1;
while(--i)
n=(n+1)*2;
printf ("桃子一共有:%d个!\n",n);
}