多项式秦九韶算法c语言

多项式秦九韶算法c语言

多项式秦九韶算法c语言_第1张图片

1)最直接的方法是根据多项式的标准表达式,通过循环累计求和来实现这个函数,但效率会很低
2)秦九韶算法,通过不断提取公因式x来减少乘法运算的次数

#include 
#include
#include
#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语言,数据结构)