1010 一元多項式求導 25分

2021-10-03 07:21:14 字數 1619 閱讀 3380

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

輸入格式:

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

輸出格式:

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

輸入樣例:

3 4 -5 2 6 1 -2 0

輸出樣例:

12 3 -10 1 6 0

對多項式進行求導,冪數小於1000,要求輸出求導後的係數和指數(指數由大到小)。

1、由於指數的範圍在0~1000,所以不知道具體的輸入資料個數,要選擇正確的輸入方式;

2、對於係數和指數的儲存,可以使用陣列來存放對應指數的係數;

3、處理的時候,由低次項到高次項進行處理,輸出的時候在由高次項向低次項進行。

**如下:

#include

//#include

intmain()

;int c=0;

while

(scanf

("%d %d"

,&a,

&b)!=

eof)

count[0]

=0;//求導後常數變為0,即冪數為0的項 變為0

for(

int i=

1;i<=

1000

;i++)if

(c==0)

else}}

return0;

}

1、本題我遇到的第乙個難點是不知道怎麼輸入資料。一般有3種輸入方法:

(1)while……eof型

如果題目中沒有給定輸入的結束條件,即當題目沒有說明有多少資料需要輸入時,就可以利用scanf的返回值是否為eof來判斷輸入是否結束,如以下**

while

(scanf

("%d"

,&n)

!=eof

)

上述**含義是:只要scanf的返回值不為eof(即檔案中的資料沒有讀完),就繼續反覆讀入n,執行while函式體的內容;

當讀入字串時,輸入寫法為

while

(gets

(str)

!=null

)

(2)while……break型

這種型別是第一種的延伸,若題目中要求當輸入的資料滿足某個條件時停止,則使用此輸入法,例如:

while

(scanf

("%d %d"

,&a,

&b)!=

eof)

以上**含義是:當輸入的兩個資料a和b都為0時,結束輸入。

(3)while(t--)型

在這種型別中,題目會給出測試資料的組數。

2、當題目要求輸出格式是類似於「每兩個在整數之間用空格隔開最後乙個整數後面不允許加上空格」的時候,**中基本上要使用乙個計數變數(c或count)來記錄輸出資料的個數。

1010 一元多項式求導 (25 分)

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

1010 一元多項式求導 (25 分)

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

1010 一元多項式求導 (25 分)

1010 一元多項式求導 25 分 設計函式求一元多項式的導數。注 x nx n xn n為整數 的一階導數為nxn 1 nx nx n 1 輸入格式 以指數遞降方式輸入多項式非零項係數和指數 絕對值均為不超過 1000 的整數 數字間以空格分隔。輸出格式 以與輸入相同的格式輸出導數多項式非零項的係...