第一次结果正确的代码:
double f( int n, double a[], double x )
{
double sum=0;
double mul=1;
int i=0,j=0;
for(i=0;i<=n;i++)
{
for(j=0;j<=i;j++)
{
if(j==0)mul=1;
else
mul=mul*x;
}
sum=sum+a[i]*mul;
}
return sum;
double f( int n, double a[], double x )
{
double sum=0;
double mul=1;
int i=0,j=0;
for(i=0;i<=n;i++)
{
for(j=0;j<=i;j++)
{
if(j==0)mul=1;
else
mul=mul*x;
}
sum=sum+a[i]*mul;
}
return sum;
}
但运行超时,故修改为:
double f( int n, double a[], double x )
{
double sum=a[0];
double lastx=1;//类似sum
int i=1;
while(i<=n)
{
lastx=lastx*x;
sum=sum+a[i]*lastx;
i++;
}
return sum;
}