求C语言的解答

来源:百度知道 编辑:UC知道 时间:2024/05/16 04:20:07
试编写算法求一元多项式
P(x) = a0 + a1x + a2x^2 + ... + anx^n
的值P(x0),并确定算法中每一语句的执行次数和整个算法
的时间复杂度。注意选择你认为较好的输入和输出方法。

要求实现下列函数:
float Polynomial(int n, int a[], float x0);
/* 求一元多项式的值P(x0)。 */
/* 数组a的元素a[i]为i次项的系数,i=0,1,...,n */

把一个n次多项式f(x) = a(n)×x^n + a(n – 1)x^n – 1 + …… + a(1)x + a(0),分拆成n个一次多项式:v(1) = a(n)x + a(n – 1)、v(2) = v(1)x + a(n – 2)、v(3) = v(2)x + a(n – 3)……v(n) = v(n – 1)x + a(0),这种算法叫做秦九韶算法。

float Polynomial(int n, int a[], float x0);
float y=a[n-1];
for(int i=n-1;i>=1;--i){
y=y*x0+a[i-1];
}
return y;
}