1009 Product of Polynomials (25 分)

1009 Product of Polynomials (25 分)_第1张图片

解题思路:

定义三个数组double a[1001],b[1001],c[2001]分别用来表示多项式A,多项式B,和它们的成绩,其中下标表示指数,元素值代表系数

注意点:数组c的长度要大于2001,a,b,c都要初始化为零

#include 
#include
using namespace std;
int main()
{
    //数组下标代表指数,元素值代表系数
    double a[1001] = { 0 }, b[1001] = { 0}, c[2001] = {0};
    int n, m;
    cin >> n;
    for (int i = 0;i < n;i++) {
        int ex;
        double ef;
        cin >> ex >> ef;
        a[ex] = ef;
    }
    cin >> m;
    for (int i = 0;i < m;i++) {
        int ex;
        double ef;
        cin >> ex >> ef;
        b[ex] = ef;
    }
    for (int i = 0;i < 1001;i++) {
        //系数不为零时
        if (a[i] != 0) {
            for (int j = 0;j < 1001;j++) {
                if (b[j] != 0) {
                    double x = a[i] * b[j];//相乘后的系数
                    int k = i + j;//相乘后的指数
                    c[k] += x;
                }
            }
        }
    }
    int num = 0;
    for (int i = 0;i < 2001;i++) {
        if (c[i]!=0)
            num++;
    }
    cout << num ;
    for (int i = 2000;i >=0;i--) {
        if (c[i]!=0) {
            printf(" %d %.1lf", i, c[i]);
        }
    }
    return 0;
}

你可能感兴趣的:(1009 Product of Polynomials (25 分))