一元多项式求值
时间: 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;
}
题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。
