多项式秦九韶算法c语言
1)最直接的方法是根据多项式的标准表达式,通过循环累计求和来实现这个函数,但效率会很低
2)秦九韶算法,通过不断提取公因式x来减少乘法运算的次数
#include <stdio.h>
#include<math.h>
#include<time.h>
#define MAXN 10
//秦九韶多项式算法
double fun1(int n, double* a, double x){
int i;
double p = a[n];//初始值
for(i = n; i > 0; i--){
p = a[i-1] + x * p;
}
return p;
}
//一般算法
double fun2(int n, double* a, double x){
double p = a[0];//初始值
int i;
for(i = 1; i <= n; i++){
p += a[i] * pow(x,i);
}
return p;
}
int main()
{
double a[MAXN];
int i;
for(i = 0; i < MAXN; i++) a[i] = i;
double p = fun1(MAXN, &a, 1);
printf("%.2f", p);
return 0;
}
更多推荐
多项式秦九韶算法c语言
发布评论