差分方程求值(用递归和非递归两种方法)(1)
/*习题6
写出Fn(x)的递归函数
1 n=0;
Fn(x)= 2x n=1;
2xFn-1(x)-2(n-1)Fn-2(x) n>1
*/
#include <stack>
using namespace std;
typedef stack<float> floats;
//递归形式
float fn(float x,int n)
{
float res;
if(n==0)
res=1.0;
else if(n==1)
res=2*x;
else
res=2*x*fn(x,n-1)-2*(n-1)*fn(x,n-2);
return res;
}
//非递归形式
float fn2(float x,int n)
{
int k;
floats F;
float res;
for(k=0;k<=n;k++)
{
if(k==0)
{res=1;F.push(res);}
else if(k==1)
{res=2*x;F.push(res);}
else
{
float t=F.top();
F.pop();
res=2*x*t-2*(n-1)*F.top();
F.pop();
F.push(t);
F.push(res);
}
}
return res;
}
正文
练习:差分方程求值(用递归和非递归两种方法)(1)2006-06-19 02:52:00
【评论】 【打印】 【字体:大 中 小】 本文链接:http://blog.pfan.cn/bclz/15981.html
阅读(2511) | 评论(0)
版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!
评论