霍纳法则又叫秦九韶算法,在计算多项式的值得时候,避免了暴力的每项都求出,随后再求和的算法,可以是先系数乘以x的值,求和后,再加上系数,再乘以x的值
具体可以见下面的算法
也就是提取多项式的算法
#include<iostream>
using namespace std;
double horner(double a[], int n, double x) {
double res = 0;
//默认最高项的系数放在最后面
for (int i = n; i >= 0; --i) {
//核心的代码
res = x*res + a[i];
}
return res;
}
int main() {
int x, n;
double a[100];
cin >> n;
for (int i = 0; i < n; i++) {
cin >> a[i];
}
cin >> x;
cout << horner(a, n, x);
return 0;
}
具体可以看下这个博客
http://www.cnblogs.com/tanky_woo/archive/2010/11/11/1874980.html