pta 一元多项式的乘法与加法运算

2023-11-01

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 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


思路:
利用四个数组,2个装输入结果,2个装乘法和加法的结果。题目告诉了,数字不会超过1000,所以定义成1005个即可,但乘法的结果可能是原本范围的2倍,所以装乘法结果的数组要定义大一些。数据的存储采用把指数当作数组下标,系数当作数组的值,不用考虑指数为负的问题,一元多项式指数最小为0
加法:数组置0,从0到最大范围即1000循环,即把0到1000每一个下标所对应的值都相加,放到加法结果数组中,c[i] = a[i] + b[i],不用考虑该下标是否有值,在输出时判断即可。
乘法:同加法,数组置0,乘法中每一项都需要与另一个多项式的所有项相乘,因此要双重循环,外层从0到1000,内层从0到1000,结果存到乘法数组之中,例如c[i+j] += a[i] * b[j],注意此处是+=,*同时相乘是指数相加,不是相乘。*
输出:从大到小输出即可,注意只输出系数不为0的项,注意格式,同时,若结果为0,输出0 0;
不超过1000,表示最大值为1000,循环的时候一定要把1000包括进去。


参考代码:

#include <stdio.h>
#include <string.h>

//t1,t2分别为0次输入数据,t3为乘法结果,t4为加法结果
int t1[1005], t2[1005], t3[2005], t4[1005];
#define max 1000

//输出函数,arr为结果数组,range为最大范围。
void show(int *arr, int range)
{
    int i;
    int tag = 0;
    for(i = range; i >= 0; --i)
    {
        if(arr[i] != 0)
        {
            //输出的第一项前面没有空格,通过tag进行判断。
            if(tag)
            {
                printf(" ");
            }
            tag = 1;
            printf("%d %d", arr[i], i);
        }
    }
    //若最终tag为0表示没有输出过,整个结果为0,输出0 0
    if(!tag)
    {
        printf("0 0");
    }
    printf("\n");
}

int main()
{
    int n1, n2, i, j, a, b;
    //数组置0
    memset(t1, 0, sizeof(t1));
    memset(t2, 0, sizeof(t2));
    memset(t3, 0, sizeof(t3));
    memset(t4, 0, sizeof(t4));
    scanf("%d", &n1);
    for(i = 0; i < n1; ++i)
    {
        scanf("%d%d", &a, &b);
        t1[b] = a;
    }
    scanf("%d", &n2);
    for(i = 0; i < n2; ++i)
    {
        scanf("%d%d", &a, &b);
        t2[b] = a;
    }
    //计算乘法
    for(i = 0; i <= max; ++i)
    {
        for(j = 0; j <= max; ++j)
        {
            t3[i + j] += t1[i] * t2[j];
        }
    }
    //计算加法
    for(i = 0; i <= max; ++i)
    {
        t4[i] = t1[i] + t2[i];
    }
    //输出
    show(t3, max * 2);
    show(t4, max);
    return 0;
}

题目链接:https://pintia.cn/problem-sets/15/problems/710

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

pta 一元多项式的乘法与加法运算 的相关文章

  • PAT A1153

    题目 xff1a https pintia cn problem sets 994805342720868352 problems 1071785190929788928 这道题我很久才AC xff0c 主要是不知道原来它的输入可以乱来 我
  • 7-10 链表去重(25 分)

    给定一个带整数键值的链表 L 你需要把其中绝对值重复的键值结点删掉 即对每个键值 K 只有第一个绝对值等于 K 的结点被保留 同时 所有被删除的结点须被保存在另一个链表上 例如给定 L 为 21 15 15 7 15 你需要输出去重后的链表
  • PAT乙级1037 在霍格沃茨找零钱 (20分)

    pragma warning disable 4996 include
  • L1-040. 最佳情侣身高差

    专家通过多组情侣研究数据发现 最佳的情侣身高差遵循着一个公式 女方的身高 1 09 男方的身高 如果符合 你俩的身高差不管是牵手 拥抱 接吻 都是最和谐的差度 下面就请你写个程序 为任意一位用户计算他 她的情侣的最佳身高 输入格式 输入第一
  • 1004 成绩排名 (20 分) Java写法 读入n名学生的姓名、学号、成绩,分别输出成绩最高和成绩最低学生的姓名和学号。

    读入 n gt 0 名学生的姓名 学号 成绩 分别输出成绩最高和成绩最低学生的姓名和学号 输入格式 每个测试输入包含 1 个测试用例 格式为 第 1 行 正整数 n 第 2 行 第 1 个学生的姓名 学号 成绩 第 3 行 第 2 个学生的
  • 分支-20. 计算符号函数的值(10)

    对于任一整数n 符号函数sign n 的定义如下 请编写程序计算该函数对任一输入整数的值 输入格式 输入在一行中给出整数n 输出格式 在一行中按照格式 sign n 函数值 输出该整数n对应的函数值 输入样例 1 10 输出样例 1 sig
  • 2020年十二月ccf-csp认证总结(内附个人题解)

    吐槽一下这个在线评测功能 平均四十分钟才能看到提交结果 本次成绩为100 100 0 30 20 最后两道题都是骗的分 提醒自己附代码的神奇图片 希望寒假有时间把没做出来的题目也再做一遍 csp官网更新出题目后 有路过的可以提醒我把题目加上
  • 1014 Waiting in Line (30)

    题目描述 Suppose a bank has N windows open for service There is a yellow line in front of the windows which devides the wait
  • PAT 1033 旧键盘打字

    题目链接 请点击 思路 用string定义两个字符串 然后比较就可以了 然而 开始直接用cin gt gt str1 gt gt str2 导致有部分测试点始终未过去 后来参考他人的博客才发现这里应该用getline原因就在于第一行可能是空
  • L1-029. 是不是太胖了

    据说一个人的标准体重应该是其身高 单位 厘米 减去100 再乘以0 9所得到的公斤数 已知市斤是公斤的两倍 现给定某人身高 请你计算其标准体重应该是多少 顺便也悄悄给自己算一下吧 输入格式 输入第一行给出一个正整数H 100 lt H lt
  • 1048 数字加密 (20 分)

    题目描述 本题要求实现一种数字加密方法 首先固定一个加密用正整数 A 对任一正整数 B 将其每 1 位数字与 A 的对应位置上的数字进行以下运算 对奇数位 对应位的数字相加后对 13 取余 这里用 J 代表 10 Q 代表 11 K 代表
  • 1059 C语言竞赛(PAT 乙级 C++实现)

    1059 C语言竞赛 20 point s C 语言竞赛是浙江大学计算机学院主持的一个欢乐的竞赛 既然竞赛主旨是为了好玩 颁奖规则也就制定得很滑稽 0 冠军将赢得一份 神秘大奖 比如很巨大的一本学生研究论文集 1 排名为素数的学生将赢得最好
  • PAT B1016 部分A+B (15 分)(C语言实现)

    PAT B1016 部分A B 15 分 C语言实现 问题描述 正整数 A 的 D A 为 1 位整数 部分 定义为由 A 中所有 D A 组成的新整数 P A 例如 给定 A 3862767 D A 6 则 A 的 6 部分 P A 是
  • 7-3 谁是赢家

    7 3 谁是赢家 某电视台的娱乐节目有个表演评审环节 每次安排两位艺人表演 他们的胜负由观众投票和 3 名评委投票两部分共同决定 规则为 如果一位艺人的观众票数高 且得到至少 1 名评委的认可 该艺人就胜出 或艺人的观众票数低 但得到全部评
  • 【PAT甲级】1074 Reversing Linked List (25 point(s))

    Given a constant K K K and a singly linked list L L L you are supposed to reverse the links of every
  • 1054 求平均值 (20 分)

    1054 求平均值 20 20 分 本题的基本要求非常简单 给定N个实数 计算它们的平均值 但复杂的是有些输入数据可能是非法的 一个 合法 的输入是 1000 1000 区间内的实数 并且最多精确到小数点后2位 当你计算平均值的时候 不能把
  • PAT-组个最小数

    题目描述 给定数字0 9各若干个 你可以以任意顺序排列这些数字 但必须全部使用 目标是使得最后得到的数尽可能小 注意0不能做首位 例如 给定两个0 两个1 三个5 一个8 我们得到的最小的数就是10015558 现给定数字 请编写程序输出能
  • 1012.数字分类- PAT乙级真题

    给定一系列正整数 请按要求对数字进行分类 并输出以下 5 个数字 A 1 能被 5 整除的数字中所有偶数的和 A 2 将被 5 除后余 1 的数字按给出顺序进行交错求和 A3 被 5 除后余 2 的数字的个数 A 4 被 5 除后余 3 的
  • 【PAT乙级】锤子剪刀布

    题目描述 大家应该都会玩 锤子剪刀布 的游戏 两人同时给出手势 胜负规则如图所示 现给出两人的交锋记录 请统计双方的胜 平 负次数 并且给出双方分别出什么手势的胜算最大 输入格式 输入第 1 行给出正整数 N 10 5 即双方交锋的次数 随
  • 8-0. 查找整数(10)

    本题要求从输入的N个整数中查找给定的X 如果找到 输出X的位置 从0开始数 如果没有找到 输出 Not Found 输入格式 输入在第1行中给出2个正整数N lt 20 和X 第2行给出N个整数 数字均不超过长整型 其间以空格分隔 输出格式

随机推荐

  • 计算机毕业论文选题

    今天给大家整理了关于计算机毕业设计选题 供大家参考 教学进度管理系统设计与实现 基于SSM的学科竞赛管理系统 办公管理系统设计与实现 库存管理系统设计与实现 人事管理系统设计与实现 财务管理系统设计与实现 基于jsp和ssm的客户关系管理系
  • 每天一个面试知识点Java(6)java中堆内存、栈内存、常量池详细讲解,学完就考同事

    Java程序是运行在JVM Java虚拟机 上的 因此Java的内存分配是在JVM中进行的 JVM是内存分配的基础和前提 Java程序的运行会涉及以下的内存区域 寄存器 JVM内部虚拟寄存器 存取速度非常快 程序不可控制 栈 存放基本类型的
  • Springboot框架整合jsp开发【干货满满】

    晚安独角兽 hello你好我是独角兽 很高兴你能来阅读 昵称是希望自己能不断精进 向着优秀程序员前行 博客来源于项目以及编程中遇到的问题总结 偶尔会有读书分享 我会陆续更新Java前端 后台 数据库 项目案例等相关知识点总结 感谢你的阅读和
  • verilog中的基本数据类型

    Verilog 最常用的 2 种数据类型就是线网 wire 与寄存器 reg 其余类型可以理解为这两种数据类型的扩展或辅助 一 线网 wire wire 类型表示硬件单元之间的物理连线 由其连接的器件输出端连续驱动 如果没有驱动元件连接到
  • 炫酷的登录界面--20230907

    Login Form with floating placeholder and light button HTML div class login box h2 Login h2 div
  • docker安装ElasticSearch8.x和Kibana8.x

    安装es和kibana 1 访问镜像官网 https hub docker com 搜索elasticsearch kibana进行查找 选择合适的版本 这里选择 elasticsearch 8 8 0和 kibana 8 8 0 2 下载
  • 编写程序,由键盘输入三个整数分别存入变量num1,num2,num3,对他们进行排序,并且从小到大输出。

    var num1 prompt 请输入数字1 var num2 prompt 请输入数字2 var num3 prompt 请输入数字3 prompt 返回的值类型是string 用 将num先转换成number再比较 if num1 lt
  • GitHub上README.md文章的上传图片和图片大小尺寸

    看到别人的仓库里的readme md有图文介绍 自己试了一下 发现并不成功 学习了一下 主要有以下几个步骤 1 上传图片到github 并且要Commit changes 2 返回仓库目录打开刚才上传的图片 复制此时的网页地址栏连接 例如这
  • CAN15765和1939协议

    1 15765协议介绍 简单的来说 15765协议指的是 基于CAN2 0A B 协议 也可以叫做ISO11898协议 链路层 硬件接口的 应用层 通讯协议 它用于实现通用的车辆诊断服务 ISO11898协议参考下图 参考搜索到的 CAN总
  • STC15F2K60S2单片机的串口通信程序及相关知识

    一 STC15F2K60S2单片机简介 中国深圳宏晶STC系列单片机是2005年推出中国本土的第一款具有全球竞争力的 且与MCS 51兼容的STC系列单片机 它完全兼容51单片机 是新一代增强型单片机 速度快 抗干扰性强 加密性强 带ADC
  • 解决WIN10 ,在资源管理器搜索文件时,必须按回车才能开始搜索的问题

    解决WIN10 在资源管理器搜索文件时 必须按回车才能开始搜索的问题 在使用WIN10中 在资源管理器中经常搜索文件 而每次搜索文件时 必须按回车才能开始搜索 不像WIN7那个 每输入一个字符 就自动搜索所输入的字符或字条串 如果偶尔用一下
  • 李宏毅对抗生成网络 (GAN)教程(3)Unsupervised Conditional Generation

    文章目录 两大类做法 一 Direct Transformation Cycle GAN Star GAN 二 Projection to Common Space 1 共享参数 2 加一个domain discriminator 3 Cy
  • vue中自定义table的样式不生效

    页面中style带有scoped导致不生效 只能写在全局样式中
  • vector容器

    前言 vector的数据安排以及操作方式 与数组十分相似 他们的唯一差别就是数组是静态空间 而vector是动态空间 当他要去扩容空间的时候 编译器内部会帮助我们去寻找一片新的空间 自动释放以前旧的空间 在vector的实现技术中 关键在于
  • python selenium 用IE下载报 要打开或保存来自 提示问题的一种解决办法

    import win32api import win32con time sleep 2 alt s快捷键 win32api keybd event 0x12 0 0 0 按下alt win32api keybd event 83 0 0
  • 以太坊智能合约字节码深入解析

    智能合约编写好之后需要通过编译器编译后才能在虚拟机上运行 智能合约的编译结果称为字节码 字节码是一串十六进制数字编码的字节数组 字节码的解析是以一个字节为单位 每个字节都表示一个EVM指令或一个操作数据 我们通过一个简单的智能合约来分析智能
  • 结构光的概念及其实现三维成像的主要原理

    结构光三维成像的硬件主要由相机和投射器组成 结构光就是通过投射器投射到被测物体表面的主动结构信息 如激光条纹 格雷码 正弦条纹等 然后 通过单个或多个相机拍摄被测表面即得结构光图像 最后 基于三角测量原理经过图像三维解析计算从而实现三维重建
  • 微特技术钢丝绳探伤仪自动监测系统功能概述

    前言 长期以来 钢丝绳的使用和管理始终是各企业设备管理的难点 因钢丝绳断裂造成的事故屡见不鲜 而每一次事故都伴随着财产损失和人员伤亡等严重后果 截至目前 肉眼看 卡尺量等依然是普遍性的钢丝绳检测手段 检测技术与用户的安全管理需求之间存在着巨
  • 服务器操作系统品牌怎么看,服务器操作系统品牌怎么看

    服务器操作系统品牌怎么看 内容精选 换一换 华为云帮助中心 为用户提供产品简介 价格说明 购买指南 用户指南 API参考 最佳实践 常见问题 视频帮助等技术文档 帮助您快速上手使用华为云服务 以Linux操作系统为例 如果在变更规格后执行i
  • pta 一元多项式的乘法与加法运算

    7 2 一元多项式的乘法与加法运算 20 分 设计函数分别求两个一元多项式的乘积与和 输入格式 输入分2行 每行分别先给出多项式非零项的个数 再以指数递降方式输入一个多项式非零项系数和指数 绝对值均为不超过1000的整数 数字间以空格分隔