秦九韶算法 发表于 2017-07-21 | 分类于 algorithm 简介当处理一个多项式在 x = x0 处的值的时候, 不断地对求 x^n 是低效的。 尤其是当n很大的时候, pow(x, n)在多项式系数的循环当中将整个算法的复杂度变为O(n^2). 公式 程序实现12345678910111213141516171819202122#include <iostream>#include <vector>using namespace std;int main(){ int n; cin >> n; vector<int> arr(n + 1); for(int i = 0; i <= n; ++i) { cin >> arr[i]; } int x; cin >> x; int ans = arr[n]; for(int i = n - 1; i >= 0; --i) { ans = ans * x + arr[i]; } cout << ans << endl; return 0;} 1234567891011121314151617181920212223import java.util.ArrayList;import java.util.Scanner;public class QinJiuZhaoAlgorithm { public static void main(String[] args) { // TODO Auto-generated method stub Scanner in = new Scanner(System.in); ArrayList<Integer> arr = new ArrayList<Integer>(); int nNum = in.nextInt(); for(int i = 0; i <= nNum; i++) { arr.add(in.nextInt()); } int x = in.nextInt(); int ans = arr.get(arr.size() - 1); for(int i = arr.size() - 2; i >= 0; --i) { ans = arr.get(i) + x * ans; } System.out.println(ans); }}