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 @   唐锴烨  阅读(33)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示