一维多项式递归算法实现:y(x)=a*x^k+b*x^(k-1) + c*x^(k-2)................z 其递归算法公式:u(k) = u(k+1) + a(k) 实现源代码如下: /** 算法描述:一维多项式的计算 表达式递归计算公式:u(k)=u(k+1)+a(k) */ #include <stdio.h> /* 一维多项式算法函数 */ double getPolyVal(const double coefs[], const int coefn, const double xval) { int i; double sum_n; sum_n = coefs[coefn-1];/* 取出第n个系数 */ for(i=coefn-2; i>=0; i--)/* 从第n-1个系数计算,递归直到x(0) */ sum_n = sum_n * xval + coefs[i]; return sum_n; } int main(void) { /* 计算多项式表达式:y(x)=2*x^6-5*x^5+3*x^4+x^3-7*x^2+7*x-20 */ static double a[7]={-20.0,7.0,-7.0,1.0,3.0,-5.0,2.0}; printf("y(%d)=%5.2lf p(%d)=%12.6e/n", 0,0.9,0,getPolyVal(a,7,0.9)); return 0; }