計算機程式設計︱HW4

兩方程式相加

影片說明

題目敘述

請設計一個程式,此程式可以不斷地輸入兩個多項式,直到其中一個多項次的項數小於等於0時結束程式。 當每輸入一組多項式後,請將此兩多項式相加並以降冪方式排列(指數由大到小)輸出結果。
每一個多項式的格式如下所示:

1
2
3
4
n
C1 E1
C2 E2
Cn En

n表示為項數,Ci表示為係數,Ei則為相對應的項次的指數部分。

答題思路

開一個陣列,每一個陣列對應的是一個冪次項,例如:arr[0]表示x的零次項,之後再根據輸入,完成對應項相加即可。

參考答案

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include <iostream>
#define SIZE 80

using namespace std;

int main() {
    int n, c, e;
    
    while(cin >> n and n != 0) {
        int arr[SIZE] = {0};
        
        for(int i=0; i<n; i++) {
            cin >> c >> e;
            arr[e] += c;
        }
        
        cin >> n;
        for(int i=0; i<n; i++) {
            cin >> c >> e;
            arr[e] += c;
        }
        
        bool isFirst = 1;
        for(int i = SIZE - 1; i >=0; i--) {
            if(arr[i] != 0) {
                if(!isFirst)
                    printf("%+dX^(%d)", arr[i], i);
                else {
                    printf("%dX^(%d)", arr[i], i);
                    isFirst = false;
                }
            }
        }
        printf("\n");
    }

    return 0;
}
最後更新 Mar 11, 2024 12:10 +0800