1009 Product of Polynomials (25 分)

捕獲.PNG

解題思路:

定義三個數組double a[1001],b[1001],c[2001]分別用來表示多項式A,多項式B,和它們的成績,其中下標表示指數,元素值表明係數

注意點:數組c的長度要大於2001,a,b,c都要初始化爲零

#include <iostream>
#include<math.h>
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;
}
相關文章
相關標籤/搜索