前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >02-线性结构2 一元多项式的乘法与加法运算 (20分)

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

作者头像
AI那点小事
发布2020-04-20 16:30:19
3660
发布2020-04-20 16:30:19
举报
文章被收录于专栏:AI那点小事AI那点小事

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

输入格式:

输入分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


AC代码:

#include <iostream>
#include <vector>
#define Max_Expon 1001
#define Max_Mul_Expon 1000001
using namespace std;

vector<int> Polynomial_Add(Max_Expon,0);  
vector<int> Polynomial_Mul(Max_Mul_Expon,0);

//打印函数 
void Print(vector<int> Polynomial)
{ 
    int flag = 0;
    for ( int i = Polynomial.size()-1 ; i >= 0 ; i-- ){
        if ( Polynomial[i] != 0){
            if ( flag == 0){
                cout<<Polynomial[i]<<" "<<i;
                flag = 1;
            }else{
                cout<<" "<<Polynomial[i]<<" "<<i;
            }
        }
    }
    if ( flag == 0){
        cout<<"0 0";
    }
}

//多项式加法 
void Add(vector<int> Polynomial_1,vector<int> Polynomial_2){
    for ( int i = 0 ; i < Polynomial_Add.size() ; i++){
        Polynomial_Add[i] = Polynomial_1[i]+Polynomial_2[i];
    }
} 

//多项式乘法 
void Mul(vector<int> Polynomial_1,vector<int> Polynomial_2){
    for ( int i = 0 ; i < Polynomial_1.size() ; i++){
        for ( int j = 0 ; j < Polynomial_2.size() ; j++){
            Polynomial_Mul[i+j] += Polynomial_1[i]*Polynomial_2[j];
        }
    }
}

int main()
{
    vector<int> Polynomial_1(Max_Expon,0);  
    vector<int> Polynomial_2(Max_Expon,0);    
    int coef=0;     //系数  
    int expon=0;    //指数 
    int num=0;  

    //初始化多项式 
    cin>>num;
    for ( int i = 0 ; i < num ; i++){
        cin>>coef>>expon;
        Polynomial_1[expon] = coef;
    }

    cin>>num;
    for ( int i = 0 ; i < num ; i++){
        cin>>coef>>expon;
        Polynomial_2[expon] = coef;
    }

    Mul(Polynomial_1,Polynomial_2);
    Print(Polynomial_Mul);
    cout<<endl;

    Add(Polynomial_1,Polynomial_2);
    Print(Polynomial_Add);

    return 0;
 } 
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档