这个题目很有意思。
一开始我想的是最笨的办法,用了两个for循环,分别求出第n项的值,再加到sum上,最后return sum。这里就不贴代码了。
后来,我想到多项式可以变成乘积相加的形式,即:
代码如下:
double f( int n, double a[], double x ){
int i = n-1;
double sum;
sum = a[n];
while( i >= 0 ){
sum = x * sum + a[i];
--i;
}
return sum;
}
结果老是编译错误,让我十分懵逼。用了测试用例结果是对的。无奈,到网上找到一份可以编译通过的答案。(因为我没有返回return。。。)
double f( int n, double a[], double x )
{
int i;
double X=1;
double sum=a[0];
for(i=1;i<=n;i++)//之前两个for循环套用完全可以用一个for循环来代替
{
X=X*x;
sum=sum+X*a[i];
}
return sum;
}
现在还不知道我错在哪里了。