请教:猴子吃桃的递归计算
猴子吃桃,第一天先吃全部的一半,然后又吃了一个,如此,到了第十天就有一个桃了。
第n t天拥有的桃子数量,第一个公式 f(n) = f(n-1)/2 -1,
也可以写成第二个公式:f(n-1) = 2 * f(n)+2
或者写成第三个公式:f(n) = 2*f(n+1)+2,
第四个公式:f(n) = 2*f(n-1)+2
用第三个公式可以计算出来,第四个公式也行(第三与第四个公式n初值不一样,一个为1,一个为10)然后用第一个公式却不成功呢? 朋友们请问,为什么除法的不行,而乘法的可以呢?
#include<iostream>
using namespace std;
double fun(int n);
int main()
{
int a=10;
cout<<"fun(a)="<<fun(a)<<endl;
return 0;
}
double fun(int n)
{
if (n==1)
return 1;
else
return 2*fun(n-1) +2;
}