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

评论