PTA 数据结构4-2 多项式求值 (15分)

    xiaoxiao2021-03-27  28

    4-2 多项式求值   (15分)

    本题要求实现一个函数,计算阶数为n,系数为a[0] ... a[n]的多项式f(x)=∑i=0n(a[i]×xi)f(x)=\sum_{i=0}^{n}(a[i]\times x^i)f(x)=i=0n(a[i]×xi) 在x点的值。

    函数接口定义:

    double f( int n, double a[], double x );

    其中n是多项式的阶数,a[]中存储系数,x是给定点。函数须返回多项式f(x)的值。

    裁判测试程序样例:

    #include <stdio.h> #define MAXN 10 double f( int n, double a[], double x ); int main() { int n, i; double a[MAXN], x; scanf("%d %lf", &n, &x); for ( i=0; i<=n; i++ ) scanf(“%lf”, &a[i]); printf("%.1f\n", f(n, a, x)); return 0; } /* 你的代码将被嵌在这里 */

    输入样例:

    2 1.1 1 2.5 -38.7

    输出样例:

    43.1 从26号成功晋级省赛之后就歇了那么很长的一段时间。。。没有搞编程。。 考研的课程也要好好的搞起来呀。不能再做一条咸鱼了。。哇呜。。 所以今天上午起的挺晚的,然后背了一会单词就开始上网。。 打开PTA准备写写数据结构。。 省赛的时候能多做几道题出来 开始的题都很简答啊,其实这道题刚开始我是没看懂的,后来再看了一下阶数,然后用计算器试着算了一下才发现到底怎么做。。 然后中间 i=0,i=1,的不同。 也写的很复杂,实际上可能并不需要,第一版 double f( int n, double a[], double x ) { int i; double m=x; double sum =0.0; int j; for(i=0;i<=n;i++) { if(i>1) { for(j=0;j<i;j++) { m=x*x; } } if(i==0) sum = sum +a[0]; else sum = sum+m*a[i]; } return sum; } 所以看了一下其他宝宝的程序,觉得有很多地方确实很巧啊。 for example: double f( int n, double a[], double x ) { int i; double num=1; //这也是比我做的好的地方,,太久不做题,,智商下降 double sum=a[0]; //比如让sum先等于a[0],直接是让i=0的情况 for(i=1;i<=n;i++) { num=num*x; sum=sum+num*a[i]; } return sum; }                                                                                                     别去想那么多,学会处理好各种关系,自律带来权利,加油。                                                                                                 2017.4.4
    转载请注明原文地址: https://ju.6miu.com/read-664450.html

    最新回复(0)