首页 > 其他 > 详细

02-线性结构2 一元多项式的乘法与加法运算 (20 分

时间:2019-02-20 22:24:21      阅读:169      评论:0      收藏:0      [点我收藏+]

设计函数分别求两个一元多项式的乘积与和。

输入格式:

输入分2行,每行分别先给出多项式非零项的个数,再以指数递降方式输入一个多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。

输出格式:

输出分2行,分别以指数递降方式输出乘积多项式以及和多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。零多项式应输出0 0

输入样例:

4 3 4 -5 2  6 1  -2 0
3 5 20  -7 4  3 1

输出样例:

15 24 -25 22 30 21 -10 20 -21 8 35 6 -33 5 14 4 -15 3 18 2 -6 1
5 20 -4 4 -5 2 9 1 -2 0
#include<cstdio>
const int maxn = 2010;
int add[maxn]={0},mul1[maxn]={0},mul2[maxn];
int main(){
    int n,ex,coe;//coe 系数,ex指数 
    scanf("%d",&n);
    for(int i = 0; i < n; i++){
        scanf("%d%d",&coe,&ex);
        add[ex] += coe;
        mul1[ex] += coe;
    }
    scanf("%d",&n);
    for(int i = 0; i < n; i++){
        scanf("%d%d",&coe,&ex);
        add[ex] += coe;
        for(int j = 0; j < maxn; j++){
            if(mul1[j] != 0){
                mul2[j+ex] += coe*mul1[j];
            }
        }
    }
    int count1 = 0,count2 = 0;
    for(int i = 0; i < maxn; i++){
        if(add[i] != 0) count1++;
        if(mul2[i] != 0) count2++;
    }
    //printf("%d %d\n",count1,count2);
    if(count2 == 0) printf("0 0\n");
    else{
        for(int i = maxn; i >= 0; i--){
            if(mul2[i] != 0){
                printf("%d %d",mul2[i],i);
                count2--;
                if(count2 > 0) printf(" ");
                else printf("\n");
                }
            }
        }    
    if(count1 == 0) printf("0 0");
    else{
        for(int i = maxn; i >= 0; i--){
            if(add[i] != 0){
                printf("%d %d",add[i],i);
                count1--;
                if(count1 > 0) printf(" ");
            }            
        }
    }
    return 0;
}

 

02-线性结构2 一元多项式的乘法与加法运算 (20 分

原文:https://www.cnblogs.com/wanghao-boke/p/10409376.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!