1010 一元多項式求導(~scanf)
阿新 • • 發佈:2019-01-28
設計函式求一元多項式的導數。(注:xn(n為整數)的一階導數為nxn−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, flag = 1; while(~scanf("%d %d", &m, &n)){ if(n != 0){ if(flag){ printf("%d %d", m * n, n - 1); flag = 0; }else{ printf(" %d %d", m * n, n - 1); } } } if(flag) printf("0 0"); }
scanf返回成功讀入資料的項數,遇到錯誤或end of file時返回EOF(-1),~是按位取反,-1的反碼為0,即可跳出迴圈。也可寫為scanf("%d %d", &m, &n) != EOF。本題沒有必要建立陣列or結構體去儲存,直接輸出就是很好的方法。flag用於控制格式,同時解決零多項式的問題。