原题链接 1002 A+B for Polynomials (25 分)
【题目大意】
给定两个多项式A和B,输出 A+B
【注意】
当aNi与bNi之和为0的时候,不输出其对应的指数和系数
#include<iostream>
#include<vector>
using namespace std;
int main(){
float num;
vector<float> line1, line2;
while(cin>>num){
line1.push_back(num);
auto x = cin.get();
if(x=='\n') break;
}
while(cin>>num){
line2.push_back(num);
auto x = cin.get();
if(x=='\n') break;
}
int index1=1, index2=1;
vector<float> ans;
while(index1!=line1.size() && index2!=line2.size()){
if(line1[index1]>line2[index2]){
ans.push_back(line1[index1++]);
ans.push_back(line1[index1++]);
} else if(line1[index1]<line2[index2]){
ans.push_back(line2[index2++]);
ans.push_back(line2[index2++]);
} else{
if((line1[index1+1]+line2[index2+1])!=0){
ans.push_back(line1[index1]);
ans.push_back(line1[index1+1]+line2[index2+1]);
}
index1+=2;
index2+=2;
}
}
if(index1==line1.size()&&index2!=line2.size()){
while(index2!=line2.size())
ans.push_back(line2[index2++]);
}
if(index2==line2.size()&&index1!=line1.size()){
while(index1!=line1.size())
ans.push_back(line1[index1++]);
}
printf("%d", ans.size()/2);
for(int i=0;i<ans.size();i+=2)
printf(" %.0f %.1f", ans[i], ans[i+1]);
return 0;
}