分值 : 25 难度 : 送分题 思路 : 简单题 坑点 : 多项式乘法,弄成数组,注意结果指数最大为1000+1000 就可以,有几个点指数很大。 评语 : 挺简单的常规题
123456789101112131415161718192021222324252627282930313233343536373839404142434445
#include <iostream>using namespace std ;float data[1001] ;float data1[1001];float result[2002] ;int count2 = 0 ;int main() { int N; cin >> N ; int zhishu ; float xishu ; for(int i = 0 ; i< N ; i++) { cin >> zhishu >> xishu ; data[zhishu] = xishu ; } cin >> N ; for(int i = 0 ; i< N ; i++) { cin >> zhishu >> xishu ; data1[zhishu] = xishu ; } for(int i = 0 ; i< 1001; i++) { for(int j = 0 ; j < 1001 ; j++) { result[i+j] += data[i] * data1[j] ; } } for(int i = 0 ;i< 2001 ;i++) if(result [i] != 0 ) count2 ++ ; cout << count2 ; for(int i = 2001 ; i>= 0 ; i--) if(result[i] != 0 ) printf(" %d %.1lf" , i , result[i]) ; cout << endl ;}