正文

练习:差分方程求值(用递归和非递归两种方法)(1)2006-06-19 02:52:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/bclz/15981.html

分享到:

差分方程求值(用递归和非递归两种方法)(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;
}
        

阅读(2511) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册