例题来源:谭浩强《C语言程序设计》第五版:习题4.12
猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第2天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半多一个。到第10天想再吃时,剩下了一个。求第一天共摘了多少桃子?
单纯从数学角度出发,进行逆推,每天的桃子树 :1,4,10,22,46,94,190,382,766,1534。从中可得出An的递推公式An=2*(An-1+1),用编程语言表示为:
//猴子吃桃问题
#include <stdio.h>
//定义两个参数,一个是经过天数,另外一个是所剩个数
int Peach(int n,int a)
{
int s=a;
int i;
for(i=1;i<n;i++)
{
s=(s+1)*2;
}
return s;
}
int main()
{
printf(“一共摘了%d个桃子\n”,Peach(10,1));
return 0;
}
这样便可以解决了。通过数学数列与计算机相结合的方法,解决了很多简单却又重复的工作。不得不说计算机是个很伟大的发明。数学是人类历史上最伟大的学科。