/*
霍纳法则
比如:
p(x)=3*x*x*x*x+2*x*x*x+6*x*x+7*x+9
=x*(3*x*x*x+2*x*x+6*x+7)+9
=x*(x*(3*x*x+2*x+6)+7)+9
=x*(x*(x*(3*x+2)+6)+7)+9
所以,可以从内层括号开始算;
然后一层一层脱括号。
可以把每项的系数依次存在数组里,如本例中:
a[4]=3
a[3]=2
a[2]=6
a[1]=7
a[0]=9
先算最里层括号:
Temp=a[4]*x+a[3]
然后:Temp=Temp*x+a[2]
继续:Temp=Temp*x+a[1]
最后加上常数项:Temp=Temp+a[0]
*/
int a[]={1,9,8,8};//p(x)=1*x*x*x+9*x*x+8*x+8
(a,4,2);
实现一:
int iTemp=a[0];
for(int i=0;i!=iArrayLen-1;i++)
{
iTemp=iTemp*x+a[i+1];
}
实现二:
int
i, y = 0;
i = n;
while
(i >= 0)
{
y = a[i] + x*y;
i -= 1;
}