題目描述:
設計函數求一元多項式的導數。(注:xn(n為整數)的一階導數為n*xn-1。)
輸入格式:
以指數遞降方式輸入多項式非零項系數和指數(絕對值均為不超過1000的整數)。數字間以空格分隔。
輸出格式:
以與輸入相同的格式輸出導數多項式非零項的系數和指數。數字間以空格分隔,但結尾不能有多余空格。注意“零多項式”的指數和系數都是0,但是表示為“0 0”。
輸入樣例:
3 4 -5 2 6 1 -2 0
輸出樣例:
12 3 -10 1 6 0
代碼如下:
#include <cstdio> int main() { int m,n; int flag=1; while(scanf("%d %d",&m,&n)!=EOF){ if(n>0){ if(flag==1){ printf("%d %d",m*n,n-1); flag=0; }else{ printf(" %d %d",m*n,n-1); } } } if(flag==1) printf("0 0"); return 0; }
思路解析:
看着代碼可能挺簡單的。(= =我可是想了好久。還有中間就一個測試點超時了好多次不給過呢。)這題不要把所有的數字存到一個數組里,這道題應該一組一組的來分析,也就是一個系數一個指數的來分析,我看好多人都存到一個數組里的,代碼麻煩死啦~。本題的flag是為了挑出第一個,第一個有了就把flag改為0,主要是差在輸出的空格。一看代碼便知。flag還用來確定是不是題目里所謂的“零多項式”。如果是就輸出0 0。