PAT乙级1010.一元多项式求导

1010. 一元多项式求导 (25)

时间限制
400 ms
内存限制
65536 kB
代码长度限制
8000 B
判题程序
Standard

设计函数求一元多项式的导数。(注:xn(n为整数)的一阶导数为n*xn-1。)

输入格式:以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。

输出格式:以与输入相同的格式输出导数多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。注意“零多项式”的指数和系数都是0,但是表示为“0 0”。

输入样例:
3 4 -5 2 6 1 -2 0
输出样例 12 3 -10 1 6 0


这道题有三点需要注意:1.当输入的多项式为零多项式,即每个多项式的系数和指数都为0时,输出“0 0”
                                        2.当输入的指数为0时,不输出该项
                                        3.数字之间有空格,而结尾无空格
#include<stdio.h>
int main()
{
    int x[10],z[10];
    int i=0,j=0;
while(scanf("%d %d",&x[i],&z[i])!=EOF) 
{
if(z[i]!=0&&x[i]!=0)//当输入的系数和指数都为0,则不将其列入数组中 
{
i++;j++;
}
} 
if(i==0) printf("0 0");//如果输入的为零多项式,输出"0 0" 
else {
    for(int k=0;k<j;k++)
    {  
        x[k]=z[k]*x[k];
         z[k]-=1;
         if(k!=j-1)//若该项不为最后一项 
         printf("%d %d ",x[k],z[k]);
         else printf("%d %d",x[k],z[k]);
         
    }
    }
    return 0;
 } 

 

posted on 2017-10-26 18:11  TROYcoder  阅读(68)  评论(0)    收藏  举报