最后一题了!一直拖着没做是因为之前一直看不懂题目……
数个数和输出的时候要判断非零项,不能判断大于0因为可能有负数系数。
#include <bits/stdc++.h>
using namespace std;
vector<double> a(1001,0.0),b(1001,0.0),c(2001,0.0);
int main(){
int n;
cin>>n;
for(int i=0;i<n;i++){
int exp;
double coef;
cin>>exp>>coef;
a[exp]=coef;
}
cin>>n;
for(int i=0;i<n;i++){
int exp;
double coef;
cin>>exp>>coef;
b[exp]=coef;
}
for(int i=0;i<1001;i++){
for(int j=0;j<1001;j++){
c[i+j]+=a[i]*b[j];
}
}
int cnt=0;
for(int i=2000;i>=0;i--){
if(c[i]!=0)cnt++;
}
printf("%d",cnt);
for(int i=2000;i>=0;i--){
if(c[i]!=0){
printf(" %d %.1lf",i,c[i]);
}
}
}
截个图留念ovo