1010 一元多項式求導 25

2021-07-14 07:19:49 字數 1397 閱讀 6771

先貼一下這個題目:

這個題目,看上去並不複雜。

第一眼,感覺有些像鍊錶的一元多項式的求和,當時只想了這個思路,但是沒有去實踐,第二天,時間的時候出了問題,發現鍊錶的輸入沒有辦法停止,還是出在了對題目的理解上,不知道當指數為0的時候就不再錄入。現在想一下,如果仍然使用鍊錶,用while(1)無限迴圈,然後當有0,錄入進去後,停止建立結點,似乎也是可行的,但是始終還是很麻煩,有一種被坑了的感覺;

然後,(還沒有在網上搜尋如何迴圈錄入整數),用字元陣列來代替,當getchar錄到回車的時候,停止輸入,看似是個好方法,但是沒有考慮到負數的問題;

接著,我還是選擇用整數陣列,發現了這一點,可以用無限迴圈中加if判斷語句來在錄入指數0後及時跳出。這樣一來,這個題目的大體框架完成了。得到了19分得主體成績。

然而,還是部分正確的。所以再去看了看題目,發現題目提到了乙個零多項式的問題,然而在我的程式中,並沒有體現這個問題。

零多項式是什麼?這是第乙個問題。

原諒我數學(啊,拍磚)

零多項式即多項式=0,所以,按照題目要求來看,零多項式的指數係數都是0,需要表示為「0 0」,我在第一次思考的時候,是受題目中例子的影響,直接將常數項所得的求導結果不做表示,沒有想到,這與零多項式是不同的,這個思維上的錯誤與我上學以來在理科問題上犯得許多錯誤是一樣的!

於是我僅僅新增了剛開始為零多項式的情況,但是,還需要考慮到,如果變成零多項式會是什麼結果?那麼從**會變成零多項式呢,即常數項,又新增了條件

做題需看題,思考需仔細,另外,注意判題結果顯示,兩個錯誤所用時間相同,可推知兩個錯誤在同乙個判斷條件下生成,這是乙個小技巧。

貼上**:

#include

int main()

//寫的過程中,這裡實現在指數輸入0之後才結束,需要思考

n=i+1;

if(a[1]==0)

printf("0 0");//提交一次,部分正確,19分,後重新讀題,發現零多項式的問題,這裡是零多項式的情況,修復正確,22分,但還有乙個錯誤;

//修復過程:想到變成零多項式的情況,即本來是常數項,後來變成了零多項式,那麼不能完全不顯示,根據題意,仍應顯示0 0,所以當原多項式為常數時應該可以直接顯示0 0

//發現讀題目還是很重要的,部分正確就是一些點沒有考慮到,然後,可以分析執行時間,特殊情況下什麼時候會報答案錯誤,時間相同,那麼判斷的點應該相同

else }

printf("\n");

return 0;

}

再高興地放上完全正確的圖啦!

1010 一元多項式求導 25

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

1010 一元多項式求導 25

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

1010 一元多項式求導 25

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