題目鏈接在此。
此題是完全的簡單模擬,只需要實現求導公式,注意輸出格式即可。
我的方法和《算法筆記》中的方法對比:
我的用a[]數組保存輸入數據,然后將求導后的結果存入b[]數組,最后在輸出的時候加以輸出控制。剛開始第一次提交代碼時通過兩個測試點,一個格式錯誤,兩個答案錯誤。后來發現樣例沒過去,其實只要在輸出時做一個判斷即可(因為出現在樣例的這種錯誤是由于對常數項求導,使之成為了-1項并輸出了,故只需進行判斷之后,不輸出即可);第二次提交時兩個格式錯誤,其他測試點都過了,其實還是在于樣例這種類型,繼續在輸出時進行判斷即可。所以說我的方法在輸出格式判斷上反而是花了更多時間的。
算法筆記中的方法是用數組a[i]表示指數為i的項的系數,則a[0]=0(零次項的系數為0),然后求導的過程中更新數組a[],之后再遍歷數組,從指數從高到低輸出,加以輸出格式控制即可。還需要注意,每次a[i]都要清零,比如這種情況f(x) = x^5+x^3+x,若不清零,則a[3]就仍然存在,故結果會出錯。
此處指給出我自己的代碼。
#include<stdio.h>#include<string.h>int main(){ int a[10000],b[10000]; int cnt = 0; int bindex = 0; while(scanf("%d",&a[cnt++]) != EOF); cnt--; //求導公式 for(int i = 0 ; i < cnt; i++){ if(i%2 == 0){ b[i] = a[i]*a[i+1]; } else{ b[i] = a[i]-1; } bindex = i; } //特判零次項 if(bindex==1 && b[0] == 0){新聞熱點
疑難解答