首页 > 试题广场 >

多项式的值

[编程题]多项式的值
  • 热度指数:3943 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解

实现一个多项式的类(a+b*x+c*x^2+d*x^3+...+),要求输入该多项式的系数和x的值后打印出这个多项式的值。


输入描述:
输入第一行为样例数m,对于每个样例,第一行为多项式最高项次数n,接下来n+1个整数表示每项系数,最后一个整数x,n不超过10。


输出描述:
输出m行,表示个多项式代入x后的值。
示例1

输入

1
2
1 2 3
2

输出

17
还算简洁hhh
#include<iostream>
#include<algorithm>
using namespace std;
class mul{
    public:
    int max,x;
    void cal(){
        cin>>max;
        int* a=new int[max+1];
        for(int i=0;i<max+1;i++)
            cin>>a[i];
        cin>>x;
        int total=0;
        for(int i=0;i<max+1;i++)
            total+=pow(x,i)*a[i];
        cout<<total<<endl;
    }
};
int main(){
    int m;
    cin>>m;
    for(int i=0;i<m;i++){
        mul m;
        m.cal();
    }
}

发表于 2019-02-26 13:51:56 回复(0)
#include<iostream>
#include<cmath>
using namespace std;
//利用数组下标作为多项式x的次方
int caculate(int arr[],int x,int n)
{
    int sum = 0;
    for(int i = 0;i <= n;i++)
        sum += (arr[i] * pow(x, i));
    return sum;
}

int main(void)
{
    int m;
    cin >> m;
    int arr[11];
    
    while(m--)
    {
        int n;
        cin >> n;
        for(int i = 0;i <= n;i++)
        {
            int value;
            cin >> value;
            arr[i] = value;
        }
        int x;
        cin >> x;
        
        cout << caculate(arr, x, n) << endl;
    }
    return 0;
}

发表于 2022-02-13 15:21:31 回复(0)
#include<stdio.h>
(737)#include<math.h>
int main()
{
    int i,m,a[20],n,x,sum;
    scanf("%d",&m);
    while(m--)
    {
        scanf("%d",&n);
        for(i=0;i<=n;i++)
            scanf("%d",&a[i]);
        scanf("%d",&x);
        sum=0;
        for(i=0;i<=n;i++)//a[i]系数   i为次数
            sum+=a[i]*pow(x,i);
        printf("%d\n",sum);
    }
}

发表于 2020-05-09 16:36:54 回复(0)
北理是人工检查,应该还是要老老实实用类的
#include<iostream>
#include<math.h>
using namespace std;
class mu {
public:
	int xishu[20];
	int x, n, result;
	mu(int x, int n, int xishu[]) {
		this->x = x; this->n = n;
		for (int i = 0; i <= n; i++) 
			this->xishu[i] = xishu[i];		
		count();
	}
	void count() 
	{
		result = 0;
		for (int i = 0; i <= n; i++) 
			result += xishu[i] * pow(x, i);		
	}
	void print()
	{
		cout << result << endl;
	}
};
int main()
{
	int m, n, x;
	int xishu[20];
	cin >> m;
	while (m--) {
		cin >> n;
		for (int i = 0; i <= n; i++) 
			cin >> xishu[i];
		cin >> x;
		mu m(x, n, xishu);
		m.print();
	}
}


发表于 2020-01-21 23:06:55 回复(0)
#include<iostream>
#include<cmath>
using namespace std;
class doXiangShi{
    public:
    double xiShu[11],x;
    int n;
    doXiangShi(){
    }
    void output()
    {
        int sum=0;
        for(int i=0;i<=n;i++)
            sum+=xiShu[i]*pow(x,i);
        cout<<sum<<endl;
    }
};
int main()
{
    doXiangShi dxs;
    int m;
    cin>>m;
    for(int i=0;i<m;i++)
    {
        cin>>dxs.n;
        for(int j=0;j<=dxs.n;j++)
            cin>>dxs.xiShu[j];
        cin>>dxs.x;
        dxs.output();
    }
    return 0;
}
发表于 2019-05-07 20:46:37 回复(0)
#include<stdio.h>
int POW(int a,int b);
int main()
{
    int m,n,i,j,sum,x;int a[12];
    
    while(scanf("%d",&m)!=EOF)
    {
        for(j=1;j<m+1;j++)
        {
        sum=0;
       scanf("%d",&n);

        for(i=0;i<=n;i++)
            scanf("%d",&(a[i]));
        scanf("%d",&x);
        for(i=0;i<=n;i++)
            sum=sum+POW(x,i)*a[i];
        printf("%d\n",sum);
        }
}
    return 0;
}
int POW(int a,int b)
{
    int i,c=1;
    if(b==0) return 1;
    else{
        for(i=1;i<=b;i++)
            c*=a;
        return c;
    }
}
发表于 2019-03-30 11:44:46 回复(1)
#include <iostream>
using namespace std;

class Poly
{
    private:
        int coe[11],i,j,x,sum=0;
    public:
        int n;
        void cal()
        {
            for(i=0;i<n+1;i++)
                cin >> coe[i];
            cin >> x;
            for(i=0;i<n+1;i++)
            {
                j=i;
                while(j--)
                    coe[i] *= x;
                sum += coe[i];
            }
            cout << sum << endl;
        }
};

int main()
{
    int m;
    cin >> m;
    while(m--)
    {
        Poly tmp;
        cin >> tmp.n;
        tmp.cal();
    }
    return 0;
}

还行吧,比较容易的题。

发表于 2019-03-29 18:14:09 回复(0)
#include <iostream>
#include <cmath>
using namespace std;
int main(){
    int m;
    cin >> m;
    while(m--){
        int n, x;
        cin >>n;
        int factor[n+1], sum=0;
        for(int i=0; i<=n; ++i){
            cin >> factor[i];
        }
        cin >> x;
        for(int i=0; i<=n; ++i){
            sum += factor[i] * pow(x, i);
        }
        cout << sum << endl;
    }
}

编辑于 2024-03-15 19:21:57 回复(0)
听说百丽宫是人工检查,赶紧搞个带类的版本
#include <iostream>
#include <cmath>
using namespace std;

class Duo{

public:

    int xishu[20];

    int x;

};

int main() {
    int m;

    cin >> m;

    while(m--){

        int step,sum = 0;

        cin >> step;

        Duo a;

        for(int i = step+1 ; i<20 ; i++){
            a.xishu[i] = 0;
        }

        for(int i = 0 ; i <= step ;i++){
            cin >> a.xishu[i] ;
        }

        int binaliang;

        cin >> binaliang ;

        for(int i = 0 ; i<20 ;i++){
            
            sum = sum + a.xishu[i]*pow(binaliang,i);
        }


        cout << sum << endl;

    }

}



发表于 2023-03-18 09:47:30 回复(0)
import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        while (in.hasNextInt()) {
            int m = in.nextInt();       //样例数
            for (int i = 0; i < m; i++) {
                //第一行为多项式的最高次数m
                int max_Cs = in.nextInt();
                int a[] = new int[max_Cs + 1];
                for (int j = 0; j < a.length; j++) {
                    a[j] = in.nextInt();        //每项的系数
                }
                int x = in.nextInt();       //输入x
                int result = a[0];
                for (int j = 1; j < a.length; j++) {
                    result += a[j] * Math.pow(x, j);
                }
                System.out.println(result);
            }
        }
    }
}

发表于 2023-03-13 09:33:17 回复(0)
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
    int m;
    cin>>m;
    while(m--)
    {
        int n;
        cin>>n;
        int xishu[n+1]; // 存放系数
        for(int i=0;i<=n;i++)
        {
            cin>>xishu[i];
        }
        int x;
        cin>>x;
        int res=0;
        for(int i=0;i<=n;i++)
        {
            res=res+xishu[i]*pow(x, i);
        }
        cout<<res<<endl;
    }
    return 0;
}
发表于 2021-02-22 17:49:16 回复(0)
#include <stdio.h>
#include <math.h>

int str[12];

int main(){
    int n;
    scanf("%d",&n);
    while(n--){
        int m,sum=0;
        scanf("%d",&m);
        for(int i=0;i<=m;i++){
            scanf("%d",&str[i]);
        }
        int x;
        scanf("%d",&x);
        for(int i=0;i<=m;i++){
            sum+=str[i]*pow(x,i);
        }
        printf("%d\n",sum);
    }
    return 0;
}
发表于 2021-02-13 20:58:24 回复(0)
#include<stdio.h>
#include<math.h>
int main(){
    int m,n;
    scanf("%d",&m);//输入样例数 
        int i,j,x,sum=0;
        int a[100];
        for(i=1;i<=m;i++){
            scanf("%d",&n);//输入最高项次数 
            for(j=0;j<=n;j++){
                scanf("%d",&a[j]);  //输入每项系数 
            }
            scanf("%d",&x);//数入x 
        }
        for(j=0;j<=n;j++){
            sum+=a[j]*pow(x,j);
        }
        printf("%d\n",sum);
    
    return 0;
}
发表于 2021-01-18 09:04:28 回复(0)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define N 11

int sp[N] = {0};

int main()
{
    int m;
    while(~scanf("%d", &m))
    {
        while(m--)
        {
            memset(sp, 0, N);
            int n, x;
            scanf("%d", &n);
            for(int i = 0; i <= n; i++)
            {
                scanf("%d", sp + i);
            }
            scanf("%d", &x);
            long long int sum = 0, tmp = 1;
            for(int i = 0; i <= n; i++)
            {
                sum += (sp[i] * tmp);
                tmp *= x;
            }
            printf("%lld\n", sum);
        }
    }

    return 0;
}

C语言没有类的概念。。。
编辑于 2020-04-03 14:06:18 回复(0)
#include<iostream>
(720)#include<cmath>
using namespace std;
class Main{
    private:
    int item[11];
    int e;//最高次数
    int x;
    public:
    void set_e(){
        cin>>e;
    }
    void set_item(){
        for(int i=0;i<=e;i++){
            cin>>item[i];
        }
    }
    void set_x(){
        cin>>x;
    }
    int run(){
        int res = 0;
        for(int i=0;i<=e;i++){
            res+=item[i]*pow(x,i);
        }
        return res;
    }
};
int main(){
    int k;
    cin>>k;
    while(k-- >0){
        Main m;
        m.set_e();
        m.set_item();
        m.set_x();
        cout<<m.run()<<endl;
    }
    return 0;
}

发表于 2020-04-02 10:37:32 回复(0)
#include<stdio.h>

int num(int a,int b)
{
    int temp=1;
    for(int i=0;i<a;i++)
    {
        temp*=b;
    }
    return temp;
}

int main()
{
    int m;
    scanf("%d\n",&m);
        while(m--)
        {
            int a[20]={0};
            int b[20]={0};
            int c[20]={0};
            int sum=0;
            int n,x;
            scanf("%d\n",&n);
            for(int i=0;i<n+1;i++)
            {
                scanf("%d ",&a[i]);
            }
            scanf("%d\n",&x);
            b[0]=1;
            for(int j=1;j<n+1;j++)
            {
                b[j]=num(j,x);
            }
            for(int i=0;i<12;i++)
            {
                c[i]=a[i]*b[i];
                sum+=c[i];
            }
            printf("%d\n",sum);
        }
    return 0;
}

发表于 2020-03-24 11:27:08 回复(0)
用的低配递归
#include<stdio.h>
#include<math.h>
int fun(int num[],int n,int x)
{
	if(n==0)
		return num[n];
	int temp;
	temp=num[n]*pow(x,n);
	return (temp+fun(num,n-1,x));
	return temp;
}
int main()
{

	int m,n,i,j,x;
	int result;
	while(!scanf("%d",&m))
		while(getchar()!='\n')
			continue;
	for (i=0;i<m;i++)
	{
		scanf("%d",&n);
		int num[30];
		for (j=0;j<=n;j++)
		{
			scanf("%d",&num[j]);
		}
		scanf("%d",&x);
		result=fun(num,n,x);
		printf("%d\n",result);
	}
	return 0;
}

发表于 2020-01-10 20:54:44 回复(0)
这样的题考试时必须使用类吗?
#include<iostream>
#include<cmath>
using namespace std;

int main()
{
    int m;
    cin>>m;
    while(m-- > 0)
    {
        int i, n, x, a[20], sum = 0;
        cin>>n;
        for(i=0; i<=n; i++)
            cin>>a[i];
        cin>>x;
        for(i=0; i<=n; i++)
        {
            if(i==0)
                sum += a[i];
            else
                sum += a[i] * pow(x, i);
        }
        cout<<sum<<endl;
    }
    return 0;
}


发表于 2019-12-19 09:31:05 回复(1)
#include <cstdio>

int main() {
    int m, n, x, arr[11], sum;

    scanf("%d", &m);

    for (int i = 0; i < m; ++i) {
        scanf("%d", &n);
        scanf("%d", &sum);
        for (int j = 0; j < n; ++j) {
            scanf("%d", arr + j);
        }
        scanf("%d", &x);

        int s = x;
        for (int k = 0; k < n; ++k) {
            sum += arr[k] * s;
            s *= x;
        }
        printf("%d\n", sum);
    }

    return 0;
}

发表于 2019-10-16 18:46:30 回复(0)
#include <stdio.h>
#include <string.h>
using namespace std;

int lwq[11];

long long LWQ(int x, int n) {
	long long sum = 0l;
	long long Lwq = 1;
	for (int i = 0; i <= n; i++) {
		sum += Lwq * lwq[i];
		Lwq *= x;
	}
	return sum;
}

int main() {
	int m, n;
	scanf("%d", &m);
	for (int i = 0; i < m; i++) {
		scanf("%d", &n);
		for (int i = 0; i < n + 1; i++) {
			scanf("%d", &lwq[i]);
		}
		int x;
		scanf("%d", x);
		printf("%lld\n", LWQ(x, n));

	}
	return 0;
}

发表于 2019-09-09 14:37:50 回复(0)

问题信息

上传者:小小
难度:
30条回答 3588浏览

热门推荐

通过挑战的用户

查看代码