秦九韶算法求多项式C语言
时间: 2024-12-08 09:22:25 浏览: 26
秦九韶算法,也称为分治法或霍纳法则(Horner's Method),是一种用于高效计算多项式值的算法。它主要用于一次性给出多项式的系数,然后快速地对给定的x值求解。在C语言中,我们可以按照以下步骤实现秦九韶算法:
```c
#include <stdio.h>
// 定义多项式结构体
typedef struct {
int coef[20]; // 存储多项式的系数数组
int degree; // 多项式的最高次数
} Polynomial;
// 使用秦九韶算法计算多项式 f(x) = a_n*x^n + ... + a_1*x + a_0 的值
int calPoly(int (*coefficients)[20], int x, int n) {
int result = coefficients[n][0];
for (int i = n - 1; i >= 0; i--) {
result = coefficients[i][0] + x * result;
}
return result;
}
int main() {
Polynomial poly;
poly.degree = 4; // 假设我们有一个五次多项式
poly.coef[0] = 1; // 最高次项a_5
poly.coef[1] = 2;
poly.coef[2] = 3;
poly.coef[3] = 4;
poly.coef[4] = 5;
int x_value = 3; // 测试点
int polynomial_value = calPoly(poly.coef, x_value, poly.degree);
printf("f(%d) = %d\n", x_value, polynomial_value);
return 0;
}
```
在这个示例中,`calPoly`函数接收一个系数数组、一个x值和多项式的最高次数,通过循环逐步计算出结果。在`main`函数里,我们创建了一个五次多项式,并将其应用到秦九韶算法上。
阅读全文