本文主要是介绍求两个多项式的和,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目1472:求两个多项式的和 时间限制:1 秒
内存限制:128 兆
特殊判题:否
提交:842
解决:138
题目描述: -
输入两个多项式,计算它们的和。
每个多项式有若干对整数表示,每组整数中,第一个整数表示系数(非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<map>
using
namespace
std;
int
main()
{
int
n,value,key,i,j;
map<
int
,
int
,greater<
int
> > v;
map<
int
,
int
,greater<
int
> >::iterator pos;
i=1;
while
( cin>>n )
{
while
(n--)
{
cin>>value>>key;
v[key]+=value;
}
if
(i%2==0)
{
j=0;
for
( pos=v.begin(),j=0; pos!=v.end(); ++pos )
{
if
( pos->second!=0 )
{
if
(j==0){ cout<<pos->second<<
' '
<<pos->first; j=1; }
else
cout<<
' '
<<pos->second<<
' '
<<pos->first;
}
}
cout<<endl;
v.clear();
}
++i;
}
return
0;
}
这篇关于求两个多项式的和的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!