PAT B1010 一元多項式求導 (25 分)
阿新 • • 發佈:2019-02-10
iostream -html 長度 函數 msu sin std clas lse
設計函數求一元多項式的導數。(註:x?n??(n為整數)的一階導數為nx?n?1??。)
輸入格式:
以指數遞降方式輸入多項式非零項系數和指數(絕對值均為不超過 1000 的整數)。數字間以空格分隔。
輸出格式:
以與輸入相同的格式輸出導數多項式非零項的系數和指數。數字間以空格分隔,但結尾不能有多余空格。註意“零多項式”的指數和系數都是 0,但是表示為 0 0
。
輸入樣例:
3 4 -5 2 6 1 -2 0
輸出樣例:
12 3 -10 1 6 0
#include <stdio.h> #include <iostream> const int maxn = 1010; int poly[maxn] = { 0}; using namespace std; int main(){ int a, exp, count = 0; while (scanf("%d %d", &a, &exp)!=EOF){ // if(exp>0){ if (count == 0){ printf("%d", a*exp); } else{ printf(" %d", a*exp); } printf(" %d", exp - 1); count++;} } if(count==0){ printf("0 0"); } system("pause"); }
註意點:題目輸入不固定長度,要用 while (scanf("%d %d", &a, &exp)!=EOF) 讀取,最開始用getchar來判斷最後一個是不是0來判斷輸入結束,發現太愚蠢了,題目又沒有保證多項式的常數項一定有。由於是高項開始輸入因此可以直接讀一個輸出一個,不用再保存到一個數組中,保存到數組中一定要註意不能只判斷poly[i]>0,因為系數會小於0,所以判斷條件為!=0。
PAT B1010 一元多項式求導 (25 分)