#include <stdio.h>
int main() {
宣告n與m為兩組多項式的項數、p為次方、i與j為迴圈索引
int n, m, p, i, j;
宣告c為輸入的係數、cnt為計算結果有幾項、max為紀錄最高次方
long long c;
int cnt, max;
宣告a陣列儲存各次方的係數和,題目要求次方最高到1000
long long a[1001];
初始化陣列a與最大次方max
for (i = 0; i <= 1000; i++) a[i] = 0;
max = 0;
讀取第一組多項式的項數
scanf("%d", &n);
for (i = 0; i < n; i++) {
讀取次方p與係數c並累加到陣列
scanf("%d %lld", &p, &c);
a[p] += c;
更新目前出現過的最高次方
if (p > max) max = p;
}
讀取第二組多項式的項數
scanf("%d", &m);
for (i = 0; i < m; i++) {
讀取次方p與係數c並累加到陣列
scanf("%d %lld", &p, &c);
a[p] += c;
更新最高次方
if (p > max) max = p;
}
先掃描一遍看相加後剩下幾項係數不為0的項
cnt = 0;
for (i = 0; i <= 1000; i++) {
if (a[i] != 0) cnt++;
}
如果完全沒有剩下的項
if (cnt == 0) {
輸出NULL
printf("NULL!\n");
} else {
以降冪方式從最高次方開始輸出
for (i = 1000; i >= 0; i--) {
如果該次方的係數不等於0
if (a[i] != 0) {
依照格式輸出次方與係數
printf("%d:%lld\n", i, a[i]);
}
}
}
程式正常結束
return 0;
}