[求助]递归的使用方法?
有一数列,满足f(0=0,f(1)=1,f(2)=2,......f(n+1)=2*f(n)+f(n+1)*f(n-2) <n>=2>编写程序f(8)的值?
----------------解决方案--------------------------------------------------------
double fun(double n)
{
if(n==0) return 0;
else if(n==1)return 1;
else if (n==2) return 2;
else return 2*f(n-1)/(1-f(n-3));
}
----------------解决方案--------------------------------------------------------
#include<stdio.h>
#include<math.h>
double f(double );
main()
{
int n;
double y;
printf("qing shu ru n de zhi : ");
scanf("%d",&n);
y=f(n);
printf("biao da shi de jie guo wei y= %d\n",y);
}
double f(double n)
{
if(n==0) return 0;
else if(n==1) return 1;
else if(n==2) return 2;
else
return 2*f(n-1)+f(n-2)*f(n-3);
}
我发了一个下午才能上啊,郁闷。
----------------解决方案--------------------------------------------------------
很感谢2楼,3楼的高手,我花了好长时间多不会做,很感谢!!!
主要是:return 2*f(n-1)+f(n-2)*f(n-3)
递归果然很神奇呀!谢谢了。
----------------解决方案--------------------------------------------------------
三楼的程序似乎很多答案都是0.
再说楼主这个:f(n+1)=2*f(n)+f(n+1)*f(n-2)到底有没有写错啊?
----------------解决方案--------------------------------------------------------
是不是题目错了啊,f(n+1)=2*f(n)+f(n+1)*f(n-2)中,有个f(n)的啊,不可能用递归的啊!!!
奇怪
----------------解决方案--------------------------------------------------------
是否是 f(n-1)
----------------解决方案--------------------------------------------------------
递归式,递归初始条件都知道,递归程序不就摆在那吗.
----------------解决方案--------------------------------------------------------
只有是:f(n+1)=2*f(n)+f(n-1)*f(n-2)才可以,
书上的可能错了,这样就可以用了。
应该是这样的!
----------------解决方案--------------------------------------------------------