7-6 一元多项式的乘法与加法运算

#include<stdio.h>
int main(){
    int n,m,i,j,f=0;
    scanf("%d",&n);
    int a[n+1][2];
    for(i=0;i<n;i++){
        scanf("%d %d",&a[i][0],&a[i][1]);
    }
    scanf("%d",&m);
    int b[m+1][2];
    for(i=0;i<m;i++){
        scanf("%d %d",&b[i][0],&b[i][1]);
    }
    int c[a[0][1]+b[0][1]+1]={0};
    for(i=0;i<n;i++){
        for(j=0;j<m;j++){
            c[a[i][1]+b[j][1]]=c[a[i][1]+b[j][1]]+a[i][0]*b[j][0];
        }
    }
    for(i=a[0][1]+b[0][1];i>=0;i--){
        if(c[i]!=0){
            if(f==0)printf("%d %d",c[i],i),f++;
            else printf(" %d %d",c[i],i);
        }
    }
    if(f==0)printf("0 0");
    f=0;
    printf("\n");
    for(i=0,j=0;i!=n||j!=m;){
        if(i==n){
            for(;j!=m;){
                if(f==0){
                printf("%d %d",b[j][0],b[j][1]);
                j++,f++;
            }
            else{
                printf(" %d %d",b[j][0],b[j][1]);
                j++;
            }
            }
            break;
        }
        else if(j==m){
            for(;i!=n;){
            if(f==0){
                printf("%d %d",a[i][0],a[i][1]);
                i++,f++;
            }
            else{
                printf(" %d %d",a[i][0],a[i][1]);
                i++;
            }
            }
            break;
        }
        if(a[i][1]==b[j][1]){
            if(a[i][0]+b[j][0]){
            if(f==0){
                printf("%d %d",a[i][0]+b[j][0],a[i][1]);
                i++,j++,f++;
            }
            else printf(" %d %d",a[i][0]+b[j][0],a[i][1]),i++,j++;
            }
            else i++,j++;
        }
        else if(a[i][1]>b[j][1]){
            if(f==0){
                printf("%d %d",a[i][0],a[i][1]);
                i++,f++;
            }
            else{
                printf(" %d %d",a[i][0],a[i][1]);
                i++;
            }
        }
        else{
            if(f==0){
                printf("%d %d",b[j][0],b[j][1]);
                j++,f++;
            }
            else{
                printf(" %d %d",b[j][0],b[j][1]);
                j++;
            }
        }
    }
    if(f==0)printf("0 0");
}

 

posted @ 2023-03-03 23:36  唐锴烨  阅读(38)  评论(0)    收藏  举报