一元多项式求值

一元多项式求值

时间: 1ms        内存:128M

描述:

一元多项式是形如f(x)=a0+a1x+a2x2+...+an-1xn-1的式子,其中a0-an-1均为常系数。要求输入x及一元多项式的系数,求出x的值。

输入:

首先输入x,随后是不多于15个数据,表示多项式系数。如输入 2.5 3.2 4.3 5.6,代表求多项式f(x)=3.2+4.3x+5.6x2在当x=2.5时的值,即f(2.5)。注意,多项式的最高次指数不定,不超过14次方即可。

输出:

输出f(x)的值,结果小数点后保留3位。

示例输入:

2.5 3.2 4.3 5.6

示例输出:

48.950

提示:

参考答案(内存最优[1096]):

#include<stdio.h>
int main()
{
	float a,b,c=1,d,sum;
	scanf("%f",&a);
	sum=0;
	b=a;
	while(scanf("%f",&a)!=EOF)
	{
		sum=sum+a*c;
		c=c*b;
	}
	printf("%.3f",sum);
}

参考答案(时间最优[0]):

#include <iostream>
#include <iomanip>
using namespace std;
int main( )
{
    int n=0,i;
    double x, a[15],sum=0;
    cin>>x;    //输入x
    while(cin>>a[n])n++;   //输入多项式系数
    i=n-1;   //最高项的次数为n-1,共n项
    while(i>=0)
    {
        sum=sum*x+a[i--];
    }
    cout<<setiosflags(ios::fixed)<<setprecision(3)<<sum;
    return 0;
}

题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。

点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注