題目描述
設計函數求一進制多項式的導數。
輸入格式:
以指數遞降方式輸入多項式非零項系數和指數(絕對值均為不超過 1000 的整數)。數字間以空格分隔。
輸出格式:
以與輸入相同的格式輸出導數多項式非零項的系數和指數。數字間以空格分隔,但結尾不能有多餘空格。注意“零多項式”的指數和系數都是 0,但是表示為
0 0
。
思路
開一個數組
a[]
,存放對應指數的系數,如
a[e]
即表示指數為
e
的項的系數。
然後使用while…EOF的格式讀入系數和指數。
可劃分為“輸入”、“運算”和“輸出”三步。
注意點
1、求導時,要從低次項開始枚舉。因為在求導計算時,低次項不會影響高次項,而反過來高次項中的0會造成所有低次項系數變成0。
參考代碼
#include<iostream>
using namespace std;
const int N = 2010;
int a[N];
int main()
{
//輸入
int exp,cof,count=0;
while((scanf("%d%d",&cof,&exp))!=EOF){
a[exp]=cof;
}
//運算
for(int i=1;i<N;i++){
a[i-1]=a[i]*i;
if(a[i-1])count++;
}
//輸出
if(!count)printf("0 0");
else{
for(int i=N-1;~i;i--){
if(a[i]){
printf("%d %d",a[i],i);
count--;
if(count)printf(" ");
}
}
}
return 0;
}