PAT1009

来源:互联网 发布:mac加载字幕 编辑:程序博客网 时间:2024/06/06 21:41

http://www.patest.cn/contests/pat-a-practise/1009
思路:用数组的下标对应指数,数组储存的值对应系数。记录每个多项式的最高次以减少运算量。

#include <stdio.h>#define maxn 1005#define LOCALusing namespace std;int main(){#ifdef LOCAL    freopen("PAT1009.txt","r",stdin);#endif    float a[maxn]={0},b[maxn]={0},c[2*maxn]={0};    int Ka,Kb,Kc=0,exp,expa=0,expb=0;    scanf("%d",&Ka);    while(Ka--){        scanf("%d",&exp);        if(exp>expa){                //expa保存代数式a的最高次数             expa=exp;        }        scanf("%f",&a[exp]);    }    scanf("%d",&Kb);    while(Kb--){        scanf("%d",&exp);        if(exp>expb){            expb=exp;               //expb保存代数式b的最高次数         }        scanf("%f",&b[exp]);    }    for(int i=0;i<=expa;++i){        for(int j=0;j<=expb;++j){               c[i+j]+=a[i]*b[j];        }    }    for(int i=0;i<=expa+expb;++i){        if(c[i]!=0.0){              ++Kc;        }    }    printf("%d",Kc);    for(int i=expa+expb;i>=0;--i){        if(c[i]!=0.0){              printf(" %d %.1f",i,c[i]);        }    }    return 0;} 
0 0
原创粉丝点击