最近看数据结构,有道练习题以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];
}
}