切換
舊版
前往
大廳
主題

ZeroJudge - e806: 1.多項式計算 (Polynomial) 解題心得

Not In My Back Yard | 2020-06-02 00:11:30 | 巴幣 2 | 人氣 452

題目連結:


題目大意:
輸入有四列,每兩列代表一個多項式。每個多項式的第一列輸入給定一正整數 N (1 ≦ N ≦ 1000),代表該多項式有 N 項。接著的第二列給定 N 對的數字,每對兩個數字 p 、 c (0 ≦ p ≦ 1000 , -2 ^ 30 ≦ c ≦ 2 ^ 30),代表其中一項的次方以及該次方項的係數。

試問給定的兩個多項式做加法後產生的新多項式為何?請將該多項式按照次方大到小輸出該次方項的係數,係數為 0 的不須輸出。如果最後產生的是一個零多項式,則輸出「NULL!」。輸出格式參見範例輸出。



範例輸入:
範例輸入一:
3
2 5 3 1 0 2
4
1 -1 2 -5 0 10 3 -3

範例輸入二:
1
1 1
1
1 -1


範例輸出:
範例輸出一:
3:-2
1:-1
0:12

範例輸出二:
NULL!


解題思維:
單純地宣告兩個陣列,用來儲存兩者的係數(陣列的索引值代表相應的次方)。

然後從兩多項式的最高項次開始,用迴圈跑到常數項(0 次方項),期間將兩者的同次方項加在一起。然後按照題目的格式輸出運算後的結果(如果該項算出來的係數總和並非為 0)。

最後再判斷上述過程有沒有輸出過任何東西,沒有則代表每一項的係數最後皆為 0 。因此輸出「NULL!」。

此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。

創作回應

相關創作

更多創作