当前位置: 代码迷 >> 综合 >> 我的笔记之A1009 Product of Polynomials
  详细解决方案

我的笔记之A1009 Product of Polynomials

热度:62   发布时间:2024-02-07 22:04:19.0

题意

按照格式输出两个多项式相乘的积

思路

用两个数组存两个式子,数组下标为次数,二重循环遍历两个数组ans[i+j]+=seq1[i]+seq2[j]
特别注意这里是+=不是=,可能会有多项相乘后指数相同

AC代码

#include <iostream>
using namespace std;double seq1[1005],seq2[1005],ans[2005];int main(){int n,m;int exp;double coe;int cnt=0;scanf("%d",&n);for(int i=0;i<n;i++){scanf("%d %lf",&exp,&coe);seq1[exp]=coe;}scanf("%d",&m);for(int i=0;i<m;i++){scanf("%d %lf",&exp,&coe);seq2[exp]=coe;}for(int i=0;i<=1000;i++){if(seq1[i]==0)  continue;for(int j=0;j<=1000;j++){if(seq2[j]==0)  continue;ans[i+j]+=seq1[i]*seq2[j];}}for(int i=0;i<=2000;i++){if(ans[i]!=0)   cnt++;}printf("%d",cnt);for(int i=2000;i>=0;i--){if(ans[i]!=0)printf(" %d %.1lf",i,ans[i]);}return 0;
}   
  相关解决方案