題目連結:
題目大意:
輸入有多筆測試資料,每筆佔兩列。測資第一列給定一正整數 X ,代表要代入多項式函數的值。第二列給定 a0 、 a1 、 …… 、 an-1 、 an 這 n + 1 個整數(n 為一不定量),代表該函數為
a0 x^n + a1 x^(n-1) + …… + an-1 x + an
已知其導函數為
a0 nx^(n-1) + a1(n-1)x^(n-2) + …… + an-1
對於每個函數,試問:給定的 X 值代入給定函數的導函數之值為何?(保證所求之絕對值小於 2 ^ 31)
範例輸入:
7
1 -1
2
1 1 1
範例輸出:
1
5
解題思維:
因為 n 為不定量,所以輸入時要直接讀入一整列(如
這題的做法),然後將這些給定的係數放入一陣列。
因為微分的關係,所以最後一個係數會直接消失不見。所以我們從倒數第二個係數開始往前到第一個係數跑,對於每個係數 ai 我們求出
ai × (n - i) × X ^ (n - i - 1)
因為我們是反著跑(i 從 n - 1 跑到 0),所以那項 X ^ (n - i - 1) 可以根據前一次(上一個 i 值)的項次乘以一次 X 而得來(一開始 i = n - 1 時,該項次為 X ^ 0 , 所以為 1)。
每項跑完然後加總後即是所求。
此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。