PAT甲题题解-1009. Product of Polynomials (25)-多项式相乘

Posted 辰曦~文若

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PAT甲题题解-1009. Product of Polynomials (25)-多项式相乘相关的知识,希望对你有一定的参考价值。

多项式相乘

注意相乘结果的多项式要开两倍的大小!!!

技术分享
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <string.h>
using namespace std;
//两个多项式相乘
const int maxn=1000+5;
int k;
//原本定义个exp导致编译错误,没想到定义成exp1、exp2也会编译错误,估计引起函数名冲突了
double exps1[maxn];
double exps2[maxn];
int main()
{
    memset(exps1,0,sizeof(exps1));
    memset(exps2,0,sizeof(exps2));
    int ee;
    double val;
    scanf("%d",&k);
    for(int i=0;i<k;i++){
        scanf("%d %lf",&ee,&val);
        exps1[ee]=val;
    }
    scanf("%d",&k);
    for(int i=0;i<k;i++){
        scanf("%d %lf",&ee,&val);
        exps2[ee]=val;
    }
    double ans[maxn*2]; //注意这里要开2倍的大小
    memset(ans,0,sizeof(ans));
    for(int i=0;i<maxn;i++){
        for(int j=0;j<maxn;j++){
            ans[i+j]+=exps1[i]*exps2[j];
        }
    }
    int cnt=0;
    for(int i=0;i<maxn*2;i++){
        if(ans[i]!=0)
            cnt++;
    }
    printf("%d",cnt);
    for(int i=maxn*2-1;i>=0;i--){
        if(ans[i]!=0){
            printf(" %d %.1lf",i,ans[i]);
        }
    }
    return 0;
}
View Code

 

以上是关于PAT甲题题解-1009. Product of Polynomials (25)-多项式相乘的主要内容,如果未能解决你的问题,请参考以下文章

PAT1009:Product of Polynomials

[PTA] PAT(A) 1009 Product of Polynomials (25 分)

PAT甲级——A1009 Product of Polynomials

PAT A1009 Product of Polynomials (25 分)

PAT Advanced 1009 Product of Polynomials (25分)

PAT-A 1009. Product of Polynomials