思路
- 没有给定输入的结束条件,使用while……EOF
- a[]数组用来存放对应的指数的系数
- 从低次项至高次项进行枚举,通过公式来得到求导之后的数组,覆盖原数组,同时计数导数项不为零的个数。
- 最后从高次项往低次项枚举,输出。
AC代码
#include<cstdio>
int main()
{
int a[1010]={0};
int k,e,count=0;
while(scanf("%d%d",&k,&e)!=EOF){
a[e]=k;
}
a[0]=0;
for(int i=1;i<=1000;i++){
a[i-1]=a[i]*i;//求导公式
a[i]=0;
if(a[i-1]!=0) count++;
}
if(count==0) printf("0 0");
else {
for(int i=1000;i>=0;i--){
if(a[i]!=0){
printf("%d %d",a[i],i);
count--;
if(count!=0) printf(" ");
}
}
}
return 0;
}