算法研究:一维多项式求值(秦九韶算法)

问题通式:

求指定点X处的函数值。

 

思路:

运用秦九韶算法

将多项式表述成如下嵌套模式:

 于是可以转换成程序语言思想

 可通过for循环来实现。

 

代码实现:

C语言代码如下:

#include <stdio.h>



/*

*函数名:double odpf(double array[], int n, double x)

*参数:double array[] 系数数组 

*      int n 表示n项

*      double x x的值 

*返回值:计算结果sum

*说明:One dimensional polynomial function 一维多项式求值

*/

double odpf(double array[], int n, double x)

{

    double sum;

    sum = array[n-1];

    for (int i = n - 2; i >= 0; i--){

        sum = sum * x + array[i];

    }

    return sum;

}



int main(){

    double array[100];

    double x;

    int n;



    printf("请输入项数:");

    scanf("%d",&n);



    printf("请输入系数(空格隔开):");

    for (int i = n - 1; i >= 0; i--){

        scanf("%lf",&array[i]);

    }



    while (true){

        printf("请输入x的值:");

        scanf("%lf", &x);



        printf("x = %5.2lf, p(%5.2lf) = %.2lf\n\n", x, x, odpf(array, n, x));

    }
  return 0; }

 

测试值:

3

1 2 3

2



结果:11.00



6

2 3 1 4 5 3

3



结果:810.00

 

程序运行结果:

 

 

经检验,算法设计正确。

 

你可能感兴趣的:(算法)