1009與1002其實(shí)是不同操作的同一道題,因此算法上略有不同但思路大致相似,有了上次的教訓(xùn),這道題進(jìn)行的非常順利,但是在調(diào)試代碼時(shí)也發(fā)現(xiàn)了不少小問題,比如只想著要把多項(xiàng)式相乘卻忽略了次數(shù)相同的項(xiàng)的系數(shù)的累加,還有就是數(shù)據(jù)類型的問題,詳見patB 1011 A+B 和 C
#include <iostream>
using namespace std;
int main() {
double p[1001] = {0.0}, re[2001] = {0.0}, a;
int m,n,k;
scanf("%d", &m);
for(int i = 0; i < m; i++){
scanf("%d%lf", &k, &a);
p[k] = a;
}
scanf("%d", &n);
for(int i = 0; i < n; i++){
scanf("%d%lf", &k, &a);
for(int j = 0; j < 1001; j++){
re[k + j] += a * p[j];
}
}
int t = 0;
for(int i = 0; i < 2001; i++){
if(re[i] != 0.0) t++;
}
printf("%d", t);
for(int i = 2000; i >= 0; i--){
if(re[i] != 0.0)
printf(" %d %.1f", i, re[i]);
}
return 0;
}