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