分别用两种方法求多项式的值,第二种方法好于第一种,第一种为2n次乘法n次加法,第二种为n次乘法n次加法,为Horner法。
代码如下:
1:
#include
using namespace std;
template T ployValue(T coef[],int N,const T &x)
{
T sum=coef[0],y=1;
int i;
for(i=1;i
{
y*=x;
sum+=y*coef[i];
}
return sum;
}
int main()
{
int arr[4]={1,2,3,4};
cout<<ployValue(arr,4,1)<<endl;
cout<<ployValue(arr,4,2)<<endl;
return 0;
}
2:
#include
using namespace std;
template T ployValue(T coef[],int N,const T &x)
{
T sum=coef[N-1];
int i;
for(i=1;i
{
sum=sum*x+coef[N-1-i];
}
return sum;
}
int main()
{
int arr[4]={1,2,3,4};
cout<<ployValue(arr,4,1)<<endl;
cout<<ployValue(arr,4,2)<<endl;
return 0;
}
结果:
10 49