-2 多项式求值(15 分) 本题要求实现一个函数,计算阶数为n,系数为a[0] ... a[n]的多项式f(x)=∑ ​i=0 ​n ​​(a[i]×x ​i ​​) 在x点的值。

《-2 多项式求值(15 分) 本题要求实现一个函数,计算阶数为n,系数为a[0] ... a[n]的多项式f(x)=∑ ​i=0 ​n ​​(a[i]×x ​i ​​) 在x点的值。》

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的类型问题还是犯了错误

    原文作者:忘词hhhh
    原文地址: https://blog.csdn.net/weixin_42643504/article/details/80968166
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞