B1010:一元多项式求导(25')
思路:用数组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;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。