1582 - 多项式的值0

通过次数

0

提交次数

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);
	    }
	}
	 
}