double f( int n, double a[], double x )
{
double sum=0;
int test,i;
for(i=0;i<=n;i++)
{
for(test=0;test<i;)//判断x的阶数
x*=x;
sum+=a[i]*x;
}
return sum;
}
这个代码编译出来的是没有问题,但是运行超时了,观察看来是两个for循环,所以按照代码我的空间复杂度是Of(n^2).所以必须简化程序使用一次循环才能通过编译.
这是第二个程序
double f( int n, double a[], double x )
{
double sum=a[0];
double b=1;
int i;
for(i=1;i<=n;i++)
{
b=x*b;
sum+=a[i]*b;
}
return sum;
}
但是因为b的类型问题还是犯了错误