思路:用数组a[n]存多项式的系数m,n为多项式的指数。求导公式为a[i -1] = a[i] *i。求导后,a[i]必须清空为0,因为会影响后面的计算。求导要从低次项往高次项枚举,而输出则是要从高次项往低次项枚举。

注意:有可能没有任何非零项,因此要输出0 0.

代码:

#include<cstdio>
int main(){
	int m,n,a[1010] = {0};
	int count = 0;
	while(scanf("%d%d",&m,&n)!=EOF){
		a[n] = m;  //多项式的系数m存进数组,n表示指数
	}
	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;
}

版权声明:本文为博主原创文章,未经博主允许不得转载。