6、多项式加法

【问题描述】

一个多项式可以表示为一组数对,数对中第一个数始终为整数,且唯一,表示多项式的次数,另一数表示为对应的系数且不为0。输入两组数对,每组以0 0作为结束,实现对两个多项式的加法并按降幂输出结果数对

【输入形式】

每行输入一个数对,以空格为分隔符,以0 0结束

【输出形式】

每行输出一个数对,以空格为分隔符

【样例输入】

5 12
3 8
1 2
15 5
0 10
0 0
3 12
30 1
15 5
0 0

【样例输出】

30 1
15 10
5 12
3 20
1 2
0 10
【my code】
#include <iostream>
using namespace std;
int main()
{
 int a[100][2];
 int i=0,j=0,m=0,n=0,k=0,s=0;
  for(i=0;i<100;i++){              //第一组数对
   for(j=0;j<2;j++){
    cin>>a[i][j];
   }
   if(a[i][0]==0&&a[i][1]==0){  //第一组0
    m=i;
    break;
   }
  }
  for(i=m;i<100;i++){     //第二组数对
   for(j=0;j<2;j++){
    cin>>a[i][j];
   }
   if(a[i][0]==0&&a[i][1]==0){  //遇到00,结束
    n=i;
    break;
   }
  }
 for(j=0;j<n-1;j++){
  for(k=j+1;k<n;k++){
   if(a[j][0]==a[k][0]){        
    a[j][1]+=a[k][1];         //相等次数的,底数相加
    a[k][0]=0;a[k][1]=0;     
   }
  }
 }
for(j=0;j<n-1;j++){
 for(k=j+1;k<n;k++){
  if(a[j][0]<a[k][0]){
   s=a[j][0];
   a[j][0]=a[k][0];
   a[k][0]=s;
   s=a[j][1];
   a[j][1]=a[k][1];
   a[k][1]=s;
  }
 }
}
 for(j=0;j<n ;j++){
  if(a[j][1]!=0){
   cout<<a[j][0]<<' '<<a[j][1]<<endl;
  }
 }
 return 0; 
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值