1010 一元多項式求導

2021-09-01 11:18:18 字數 1125 閱讀 1109

設計函式求一元多項式的導數。(注:x​n(n為整數)的一階導數為 nx​n−1​ 。)

輸入格式:

以指數遞降方式輸入多項式非零項係數和指數(絕對值均為不超過 1000 的整數)。數字間以空格分隔。

輸出格式:

以與輸入相同的格式輸出導數多項式非零項的係數和指數。數字間以空格分隔,但結尾不能有多餘空格。注意「零多項式」的指數和係數都是 0,但是表示為 0 0。

輸入樣例:

3 4 -5 2 6 1 -2 0
輸出樣例:
12 3 -10 1 6 0
樣例解釋:

題目給出的多項式為 f(x) = 3x4 - 5x2 + 6x -2,求導之後為 g(x) = 12x3 - 10x + 6。

思路開乙個陣列 a,用來存放對應指數的係數,例如 a[e] 就是指數為 e 的項的係數。

然後使用 while … eof 的格式來讀入係數和指數。

從低次項至高次項進行列舉(不能反過來),通過求導公式修改陣列 a 的元素,同時計數不為零的導數項的個數。

最後從高次項到低次項進行列舉,輸出非零項的係數和指數。

注意① 經測試,該題的指數都是非負整數,不存在負指數的情況。

② 對零次項的求導需要特判其直接為0。

③ 在求導部分必須從低次項列舉到高次項,否則結果為出錯。

④ 如果求導之後沒有任何非零項,需要輸出0 0,這是本題的乙個「陷阱」。

**:

#include

intmain()

;int k, e, count =0;

//k為係數,e為指數,count計數不為零的導數項個數

while

(scanf

("%d%d"

,&k,

&e)!=

eof)

a[0]

=0;//零次項求導之後直接為0

for(

int i=

1; i<=

1000

; i++)if

(count ==0)

printf

("0 0");

//特判

else}}

return0;

}

1010 一元多項式求導

設計函式求一元多項式的導數。注 xn n為整數 的一階導數為n xn 1 輸入格式 以指數遞降方式輸入多項式非零項係數和指數 絕對值均為不超過1000的整數 數字間以空格分隔。輸出格式 以與輸入相同的格式輸出導數多項式非零項的係數和指數。數字間以空格分隔,但結尾不能有多餘空格。注意 零多項式 的指數...

1010 一元多項式求導

題目是pat乙級 思路 題意很嚇人,實際上並不需要多少數學知識。只要相鄰的兩個輸入數相乘就可以了。需要注意的是 只有常數項的情況。訓練目的 輸入輸出 迴圈 題目描述 設計函式求一元多項式的導數。注 xn n為整數 的一階導數為n xn 1。輸入格式 以指數遞降方式輸入多項式非零項係數和指數 絕對值均...

1010 一元多項式求導

設計函式求一元多項式的導數。注 xn n為整數 的一階導數為n xn 1。輸入格式 以指數遞降方式輸入多項式非零項係數和指數 絕對值均為不超過1000的整數 數字間以空格分隔。輸出格式 以與輸入相同的格式輸出導數多項式非零項的係數和指數。數字間以空格分隔,但結尾不能有多餘空格。注意 零多項式 的指數...