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

#include<cstdio>
int main(){
    int e,k,count = 0;//指数和系数 
    int a[1100] = {0};
    while(scanf("%d%d",&k,&e) != EOF){ //先enter键,再Ctrl+z 结束输入 
        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;
}

 

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

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

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

输入样例:

3 4 -5 2 6 1 -2 0

输出样例:

12 3 -10 1 6 0
#include<stdio.h>
int main(){
    int coe,expon;
    int flag = 0,count = 0;
    
    while(scanf("%d%d",&coe,&expon) !=EOF){ //多项式最后一项指数不一定是0
    
            if(flag == 0 && expon == 0){ // 零多项式是只有指数和系数为零的项 
            printf("0 0");        
        }
        if(expon == 0) break;         //在非零多项式中指数为零的项不用输出
         
        else{
            if(count == 0)printf("%d %d",expon*coe,expon-1); //控制输出格式 
            else printf(" %d %d",expon*coe,expon-1);
            flag = 1;                                        //控制零多项式,第一项输入为零 
            count = 1;                                     //控制输出第一项格式 
        }
    }
    return 0;

}

 

posted @ 2018-01-31 14:01  王清河  阅读(122)  评论(0编辑  收藏  举报