霍纳规则用于计算以下多项式的值,并使乘法的次数最少:
#include <iostream>
int hornerRule(const int x, int * const a,int length)
{
static int index = length;
if(index == 1)
{
return a[length - 1];
}
index--;
return a[length - index - 1] + x * hornerRule(x, a, length);
}
int main(int argc, char *argv[])
{
int a[4] = {1, 2, 3, 4};
std::cout << hornerRule(3, a, sizeof(a)/sizeof(int)) << std::endl;
}