最近看数据结构,有道练习题以Horner规则构成多项式(所需的乘法少于直接方式),主要使用递归思想。
代码如下:
#include <iostream> using namespace std; template <class T> T Horner(T * pnA, T x, int n); int main() { int aAarry[5] = {0, 1, 2, 3, 4}; cout << Horner(aAarry, 3, 4) << endl; return 0; } template <class T> T Horner( T * pnA, T x, int n) { if (n > 0) { pnA[n - 1] += pnA[n] * x; n--; Horner(pnA, x, n); if (n == 1) return pnA[n - 1]; } }