1582 - 多项式的值0
时间限制 : 1 秒
内存限制 : 32 MB
实现一个多项式的类(a+b*x+c*x^2+d*x^3+...+),要求输入该多项式的系数和x
的值后打印出这个多项式的值。
题目输入
输入第一行为样例数m,对于每个样例,第一行为多项式最高项次数n,接下来n+1个整数表示每项系数,最后一个整数x,n不超过10。
题目输出
输出m行,表示个多项式代入x后的值。
输入/输出样例
输入格式
1 2 1 2 3 2
输出格式
17
C语言解答
#include<stdio.h> int main() { int Xcm(int a,int b); int n,m,i,x,a[20],s;//m为最高次数幂,数组a[20]存下每次输入的数 scanf("%d",&n);//i为计时器,s计算每个表达式的值 while(n--) { scanf("%d",&m); for(i=0;i<=m;++i) scanf("%d",&a[i]); scanf("%d",&x); s=a[0]; for(i=1;i<=m;++i) s+=a[i]*Xcm(x,i); printf("%d\n",s); } return 0; } int Xcm(int a,int b) { int i,s=a; for(i=1;i<b;++i) s=s*a; return s; }
C++解答
#include <iostream> #include <cstdio> using namespace std; int main() { //freopen("test.in", "r", stdin); //freopen("test.out", "w", stdout); int n, x, t; int num[20]; cin >> t; while (t--) { cin >> n; for (int i = 0; i <= n; ++i) cin >> num[i]; cin >> x; int s = 0; for (int i = n; i >= 0; --i) s = s * x + num[i]; cout << s << endl; } return 0; }
Java解答
import java.util.Scanner; public class Main{ private static Scanner s = new Scanner(System.in) ; public static void main(String[] args) { int t = s.nextInt() ; for (int j = 0; j < t; j++) { int n = s.nextInt() ; int a[] = new int[n+1] ; for (int i = 0; i <= n; i++) { a[i] = s.nextInt() ; } int x = s.nextInt() ; int sum = 0 ; int c = 1 ; for (int i = 0; i < a.length; i++) { sum = sum+ c*a[i]; c = x*c ; } System.out.println(sum); } } }