1472.求两个多项式的和
Posted bernieloveslife
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1472.求两个多项式的和相关的知识,希望对你有一定的参考价值。
- 题目描述:
-
输入两个多项式,计算它们的和。
每个多项式有若干对整数表示,每组整数中,第一个整数表示系数(非0),第二个整数表示该项的次数。
如由3 3 5 -2 1 4 0表示3x^5 - 2 * x + 4其中第一个3表示该多项式由三个整数对表示。
- 输入:
-
输入为两行,分别表示两个多项式。表示每项的整数对按照次数大小降序给出。(次数绝对值小于1000,系数绝对值小于10000)
- 输出:
-
按照降次顺序输出表示和多项式的整数对(系数为0的整数对不用输出,整数对由空格分隔,最后一个整数对后不添加空格)
- 样例输入:
-
3 3 5 -2 1 4 0 4 2 3 -1 2 1 1 3 0
- 样例输出:
-
3 5 2 3 -1 2 -1 1 7 0
#include<iostream> #include<cstring> #include<cstdio> //注意first的处理!!! using namespace std; int xishu1[1001]; int cishu1[1001]; int xishu2[1001]; int cishu2[1001]; int result[1001]; int main(){ int n,m,i; while(cin>>n){ memset(xishu1,0,sizeof(xishu1)); memset(cishu1,0,sizeof(cishu1)); memset(xishu2,0,sizeof(xishu2)); memset(cishu2,0,sizeof(cishu2)); memset(result,0,sizeof(result)); for(i=0;i<n;i++) { cin>>xishu1[i]>>cishu1[i]; } cin>>m; for(i=0;i<m;i++) { cin>>xishu2[i]>>cishu2[i]; } for(i=0;i<n;i++) { result[cishu1[i]]=xishu1[i]; } for(i=0;i<m;i++) { result[cishu2[i]]+=xishu2[i]; } int first=1; for(i=1000;i>=0;i--) { if(result[i]) { if(first){ cout<<result[i]<<" "<<i; first=0; } else cout<<" "<<result[i]<<" "<<i; } } cout<<endl; } return 0; }
以上是关于1472.求两个多项式的和的主要内容,如果未能解决你的问题,请参考以下文章
求多项式的和:1/1 - 1/3 + 1/5 - 1/7 + 1/9 . . . + 1/(2*n-1)的和