PTA7-2一元多项式的乘法与加法运算

PTA 7-2 一元多项式的乘法与加法运算 设计函数分别求两个一元多项式的乘积与和。 输入格式: 输入分2行,每行分别先给出多项式非零项的个数,再以指数递降方式输入一个多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。 输出格式: 输出分2行,分别以指数递降方式输出乘积多项式以及和多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。零多项式应输出0 0。 输入样例: 4 3 4 -5 2... 阅读详情

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

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

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

#include<stdio.h>
#include<stdlib.h>
typedef struct poly
{
    int coef;
    int exp;
    struct poly *next;
}POLY;
POLY *Input(POLY *p);
void Display(POLY *p);
POLY *Add(POLY *p1,POLY *p2);
void Descend(POLY *&p);
POLY *Multiply(POLY *p1,POLY *p2);
int main()
{
    POLY *p1=NULL,*p2=NULL,
         *sum=NULL,*mul=NULL;
    int n1,n2;
    p1=Input(p1);
    p2=Input(p2);
    mul=Multiply(p1,p2);
    //printf("*******");
    sum=Add(p1,p2);
    //printf("\n*******");
    Display(mul);
    printf("\n");
    Display(sum);
}
POLY *Input(POLY *p)
{
    int n;
    scanf("%d",&n);
    p=(POLY *)malloc(sizeof(POLY));
    POLY *temp=NULL,*p2=p;
    for(int i=0;i<n;i++)
    {
        temp=(POLY *)malloc(sizeof(POLY));
        temp->next=NULL;
        scanf("%d",&temp->coef);
        scanf("%d",&temp->exp);
        p2->next=temp;
        p2=p2->next;
    }
    return p;
}
void Display(POLY *p)
{
    if(p->next->next==NULL&&p->next->coef==0)
    {
        printf("0 0");
    }
    else
    {
         while(p->next->next!=NULL)
         {
            printf("%d %d ",p->next->coef,p->next->exp);
            p=p->next;
         }
         printf("%d %d",p->next->coef,p->next->exp);
    }
}
POLY *Add(POLY *p1,POLY *p2)
{
    POLY *p=NULL,*temp=NULL,*pr=NULL;
    p=(POLY *)malloc(sizeof(POLY));
    pr=p;
    while(p1->next!=NULL||p2->next!=NULL)
    {
        temp=(POLY *)malloc(sizeof(POLY));
        temp->next=NULL;
        pr->next=temp;
        if(p1->next!=NULL)
        {
            temp->coef=p1->next->coef;
            temp->exp=p1->next->exp;
            p1=p1->next;
        }
        else if(p2->next!=NULL)
        {
            temp->coef=p2->next->coef;
            temp->exp=p2->next->exp;
            p2=p2->next;
        }
        pr=pr->next;
    }   
    //printf("****");
    Descend(p);
    return p;
}
void Descend(POLY *&p)
{
    POLY *p1=(POLY *)malloc(sizeof(POLY));
    POLY *pr=p,*temp=NULL,*pr2=p1;
    while(pr->next!=NULL)
    {
        temp=(POLY *)malloc(sizeof(POLY));
        temp->next=NULL;
        pr2->next=temp;
        temp->coef=pr->next->coef;
        temp->exp=pr->next->exp;
        pr=pr->next;
        pr2=pr2->next;
    }
    pr=p;
    pr2=p1;
    POLY temp2;
    while(pr2->next->next!=NULL)
    {
        pr=p;
        while(pr->next->next!=NULL)
        {
            if(pr->next->exp<pr->next->next->exp)
            {
                temp2.coef=pr->next->coef;
                temp2.exp=pr->next->exp;
                pr->next->coef=pr->next->next->coef;
                pr->next->exp=pr->next->next->exp;
                pr->next->next->coef=temp2.coef;
                pr->next->next->exp=temp2.exp;
            }
            pr=pr->next;
        }
        pr2=pr2->next;
    }
    pr=p;
    pr2=p1;
    while(pr->next!=NULL)
    {
        if(pr->next->coef==0&&p->next->next!=NULL)
        {
            pr->next=pr->next->next;
        }
        else
            pr=pr->next;
    }
    pr=p;
    pr2=p1;
    while(pr->next->next!=NULL)
    {
        temp=pr->next->next;
        if(pr->next->exp==pr->next->next->exp)
        {
             pr->next->coef=pr->next->coef+pr->next->next->coef;
             pr->next->next=temp->next;
             free(temp);
            if(pr->next->coef==0&&p->next->next!=NULL)
            {
                pr->next=pr->next->next;
            }
        }
        else
            pr=pr->next;
    }
}
POLY *Multiply(POLY *p1,POLY *p2)
{
    POLY *p=(POLY *)malloc(sizeof(POLY));
    POLY *temp=NULL,*pr=p,*p2_temp=p2;
    while(p1->next!=NULL)
    {
        p2=p2_temp;
        while(p2->next!=NULL)
        {
            temp=(POLY *)malloc(sizeof(POLY));
            temp->coef=p1->next->coef*p2->next->coef;
            temp->exp=p1->next->exp+p2->next->exp;
            temp->next=NULL;
            pr->next=temp;
            pr=pr->next;
            p2=p2->next;
        }
        p1=p1->next;
    }
    Descend(p);
    return p;
}
PTA-7-2 一元多项式的乘法与加法运算 本体的思路就是模拟多项式的乘法,题目描述如下: 7-2 设计函数分别求两个一元多项式的乘积与和。 输入格式: 输入分2行,每行分别先给出多项式非零项的个数,再以指数递降方式输入一个多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。 输出格式: 输出分2行,分别以指数递降方式输出乘积多项式以及和多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。零多项式应输... 阅读详情

相关推荐

PTA 7-2 一元多项式的乘法与加法运算 链表合并

题目: 7-2 一元多项式的乘法与加法运算 (20 分) 设计函数分别求两个一元多项式的乘积与和。 输入格式: 输入分2行,每行分别先给出多项式非零项的个数,再以指数递降方式输入一个多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。 输出格式: 输出分2行,分别以指数递降方式输出乘积多项式以及和多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。...

Aya_Uchida 627

使用Python实现多项式系数卷积乘法

使用Python实现多项式乘法关键字:问题来源 关键字: 多项式乘法 卷积乘法 Python 多项式系数 卷积系数 华为上机考试 算法 问题来源 来源于一个华为机考题。 要求输入依次两个多项式的系数,从高次到低次,从实部到虚部的顺序输入。 输出的期望结果是多项式乘积结果,因为自己的算法研究的不太深入,所以肤浅地了解到这个可以称之为卷积。 第一次写个博客玩玩。???? 参考他人博客 :第二题 多项式卷积...

zk593826的博客 2832

PTA:7-2 一元多项式的乘法与加法运算(C语言实现)

PTA:7-2 一元多项式的乘法与加法运算(C语言实现) 相似问题: 甲级:1002 A+B for Polynomials 添加链接描述 甲级:1009 Product of Polynomials 添加链接描述 #include <stdio.h> int main() { int i,j,k,a[1001]={0},add[1001]={0},mul[2001]={0},n,...

LIve1AnD1LeARN的博客 779

【Python】——多项式

"""Python求解多项式""" from sympy import symbols, factor, expand, cancel, apart import numpy as np # 1.因式分解 # 例1:分解下列多项式:3 * x^4 - 2 * x^3 * y + 3 * x^3 - x^2 * y^2 + 6 * x^2 - x * y^2 - 4* x * y - 2 * y^2 x, y = symbols('x y') f1 = 3 * x ** 4 - 2 * x ** 3 * y

富贵的博客 4578

PTA 7-2 一元多项式的乘法与加法运算 (20分) Map解法

设计函数分别求两个一元多项式的乘积与和。 输入格式: 输入分2行,每行分别先给出多项式非零项的个数,再以指数递降方式输入一个多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。 输出格式: 输出分2行,分别以指数递降方式输出乘积多项式以及和多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。零多项式应输出0 0。 输入样例: 4 3 4 -5 2...

MISS_XDY的博客 673

QT5.14.2离线安装包保姆级教程:断网、选组件、避坑全记录

本文详细介绍了QT5.14.2离线安装包的完整流程,特别针对Windows平台开发者提供断网安装、组件选择及避坑指南。作为QT5系列中最后一个免费离线版本,5.14.2具有免注册、全组件离线安装等独特优势,是开源开发者的理想选择。文章涵盖从环境准备到安装后配置的全方位指导,帮助开发者高效完成安装并避免常见问题。

weixin_30924087的博客 578

Python入门习题----多项式相乘

【问题描述】 编写一个程序实现两个一元多项式相乘。 【输入形式】 首先输入第一个多项式中系数不为0的项的系数和指数,以一个空格分隔。且该多项式中各项的系数均为0或正整数,系数和最高幂次不会超过int类型的表示范围。对于多项式 anxn +a n-1 x n-1 + ...+ a1x1 + a0x0 的输入方法如下: an  n  a n-1  n-1 ...  a1  1  a0  0 即相...

不祈求 ~ ~ 5190

Shopee动态参数x-sap-Ri与x-sap-Sec逆向解析实战

现代电商前端反爬普遍采用动态参数校验机制,其核心是将设备指纹、DOM状态与时间上下文耦合生成不可复用的请求凭证。x-sap-Ri本质是渲染上下文唯一标识,依赖真实浏览器环境中的DOM树结构、Canvas像素指纹及毫秒级时间扰动;x-sap-Sec则是基于该标识与服务端同步密钥生成的HMAC-SHA256签名,具备强时效性与密钥轮换特性。这类机制显著提升了自动化采集门槛,广泛应用于Shopee商品详情页等高价值数据接口。本文聚焦于从Chrome DevTools调试出发,系统还原参数生成逻辑,覆盖DOM一致性

weixin_30603633的博客 896

python用函数做乘法加法运算_Python实现一元多项式的相加相乘运算

自己亲手写的,没有参考,写了改改了写。个人感觉c语言版本的会更好些,因为多个指针,Python用链表自己就是多设了头结点,然后只用各个节点的指针来实现。class ListNode:def init(self, x, y):self.c = xself.e = yself.next = Noneclass Solution:def ReadandLink(self,N):self.N=Na0=Li...

weixin_39622891的博客 579

汽车OTA 测试用例

汽车OTA 测试用例

天赐好车的博客 976

matlab 点云按高程进行赋色【2024最新版】

首先按照Z轴方向求取所在点云的高程极值(包括高程最大值与最小值),然后将高程归一化到0~255范围内,最后采用matlab中的colormap颜色渲染函数进行赋色并保存渲染结果到点云。

点云侠的博客 3341

python多项式乘积_两个多项式的乘积python

我编写了这个多项式类,但是在获取mul重载器以返回正确结果时遇到了一个问题。它适用于多项式的最高和最低阶数,但对于内部度数,它返回的系数不正确。我想这和我更新系数值的方式有关。请帮忙。在class Polynomial:def __init__(self, *termpairs):termdict1={}for i in termpairs:termdict1[i[1]]=i[0]self.ter...

weixin_36221923的博客 952

想重装OpenClaw?先执行这4步彻底卸载,避免配置冲突

在重装OpenClaw之前,彻底卸载是非常重要的一步。如果不彻底卸载,可能会导致: - 残留的配置文件与新安装的版本冲突 - 旧的依赖包干扰新的安装过程 - 服务冲突导致启动失败 - 数据混乱影响系统稳定性

一键难忘的博客 1043

PTA7-2 一元多项式的乘法与加法运算测试样例+代码详解

PTA7-2 一元多项式的乘法与加法运算 测试样例: 序号 输入 输出 0 4 3 4 -5 2 6 1 -2 0 15 24 -25 22 30 21 -10 20 -21 8 35 6 -33 5 14 4 -15 3 18 2 -6 1 3 5 20 -7 4 3 1 5 20 -4 4 -5 2 9 1 -2 0 1 2 1 2 1 0 1 4 -1 0 2 1 2 -1 0 2 2 2 2 -1000 1000 1000 0 -1000000 2000

Ms.Lyq的博客 2003

ANSYS WORKBENCH——参数化建模以及参数优化(结果导出为Excel)

目录 1、打开软件workbench 2、找到static structure,双击打开 3、选择材料 4、参数化建模 ​ 注:印记面的创建 5、模型属性设置 注:设置优化目标 6、回主界面,选择direct optimization模块 1、打开软件workbench 2、找到static structure,双击打开 3、选择材料 4、参数化建模 至此参数化建模就已经完成啦 注:印记面的创建 印记面一般是一个虚拟的区域,参与实际的网格划分,但是只是由于载.

python_AI_fans的博客 1万+

手把手教你学Simulink——基于AI融合与智能调度的场实例:强化学习在卫星资源分配中的应用

本文详细介绍了如何利用Simulink和强化学习技术实现智能卫星资源分配。文章首先分析了低轨卫星通信系统面临的动态资源调度挑战,提出采用强化学习(特别是PPO算法)的解决方案。接着逐步展示了完整的建模过程:从Simulink项目创建、卫星通信环境建模(用户业务、信道特性、资源池),到强化学习任务定义(状态空间、动作空间、奖励函数),再到PPO智能体的构建与训练。最后通过仿真验证,PPO智能体在系统吞吐量、公平性和阻塞率等关键指标上均优于传统方法。该方案为卫星通信系统的智能资源管理提供了可行方案,并支持进一步

MHD0815的博客 190

PTA7-2 一元多项式的乘法与加法运算 (20分)

PTA7-2 一元多项式的乘法与加法运算 (20分) 设计函数分别求两个一元多项式的乘积与和。 输入格式: 输入分2行,每行分别先给出多项式非零项的个数,再以指数递降方式输入一个多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。 输出格式: 输出分2行,分别以指数递降方式输出乘积多项式以及和多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。零多项式应输出0...

Soulstrong的博客 1506

基于CST的PCB通孔三维建模实例

本文简明扼要地描述了如何利用CST的参数化脚本快速生成PCB的通孔三维模型,非常适合于进行快速精准的PCB参数分析。

一只豌豆象的博客 1834

PTA 7-2 一元多项式的乘法与加法运算 (C语言实现)

题目网址:https://pintia.cn/problem-sets/15/problems/710 题目描述:设计函数分别求两个一元多项式的乘积与和。 输入格式: 输入分2行,每行分别先给出多项式非零项的个数,再以指数递降方式输入一个多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。 输出格式: 输出分2行,分别以指数递降方式输出乘积多项式以及和多项式非零项的系数和指...

James_Bond_slm的博客 2675

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

PTA 7-2 一元多项式的乘法与加法运算(C#)

输入分2行,每行分别先给出多项式非零项的个数,再以指数递降方式输入一个多项式非零项系数和指数(绝对值均为不超过1000的整数)。输出分2行,分别以指数递降方式输出乘积多项式以及和多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。零多项式应输出0 0。下面第一个是有注释版代码,第二个是无注释版。设计函数分别求两个一元多项式的乘积与和。

weixin_74864555的博客 826

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

PTA数据结构 7-2 一元多项式的乘法与加法运算

目录 题目描述 输入格式: 输出格式: 输入样例: 输出样例: 分析思路: 源代码: 学习心得 题目描述 7-2 一元多项式的乘法与加法运算 (20 分) 设计函数分别求两个一元多项式的乘积与和。 输入格式: 输入分2行,每行分别先给出多项式非零项的个数,再以指数递降方式输入一个多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。 输出格式: 输出分2行,分别以指数递降方式输出乘积多项式以及和多项式非零项的系数和指数。数字间以空格分隔,但结尾不...

游者的博客 1328

[PTA] 7-2 一元多项式的乘法与加法运算

题目详情 题目分析: 这一题细节比较多 #include <cstdio> int a, b, index, value, q[2222], w[2222], e[4444], r[2222], flag, minn = 0x3f3f3, minnn = 0x3f3f3; int main(){ scanf("%d", &a); for (int i = 0; i < a; i++) { scanf("%d%d", &value,

yym68686 458

PTA 7-2 一元多项式的乘法与加法运算 (20 分)

设计函数分别求两个一元多项式的乘积与和。 输入格式: 输入分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 2

m0_53846741的博客 453

PTA 7-2 一元多项式的乘法与加法运算 (20 分)

7-2 一元多项式的乘法与加法运算 (20 分) 设计函数分别求两个一元多项式的乘积与和。 输入格式: 输入分2行,每行分别先给出多项式非零项的个数,再以指数递降方式输入一个多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。 输出格式: 输出分2行,分别以指数递降方式输出乘积多项式以及和多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。零多项式应...

lgz0921的博客 592
上一篇: 哈夫曼编码与译码
下一篇: PTA7-16一元多项式求导
TC_Ning
博客等级 码龄6年 21粉丝 13原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值