当前位置: 首页 > article >正文

PTA甲级-1009 Product of Polynomials c++

文章目录

  • 题目内容
      • Input Specification:
      • Output Specification:
      • Sample Input:
      • Sample Output:
  • 一、题干大意
  • 二、题解要点
  • 三、具体实现
  • 总结

题目内容

This time, you are supposed to find A×B where A and B are two polynomials.

Input Specification:

Each input file contains one test case. Each case occupies 2 lines, and each line contains the information of a polynomial:

K N1 a**N1 N2 a**N2 … N**K aNK

where K is the number of nonzero terms in the polynomial, N**i and aNi (i=1,2,⋯,K) are the exponents and coefficients, respectively. It is given that 1≤K≤10, 0≤N**K<⋯<N2<N1≤1000.

Output Specification:

For each test case you should output the product of A and B in one line, with the same format as the input. Notice that there must be NO extra space at the end of each line. Please be accurate up to 1 decimal place.

Sample Input:

2 1 2.4 0 3.2
2 2 1.5 1 0.5

Sample Output:

3 3 3.6 2 6.0 1 1.6

一、题干大意

给出两个多项式,相乘后输出。

输入、输出格式为:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-C6S7tkhb-1675569980496)(C:\Users\hhzheng\AppData\Roaming\Typora\typora-user-images\image-20230205115244366.png)]

二、题解要点

  • 用vector实现,下标作指数,内容做系数。循环相乘后保存在result中,每次有相同的指数就往那个数组元素中加进去。
  • 测试点0的内容是要考虑系数为0时不打印、不计数

三、具体实现

/**
*@Author:hhzheng
*@Date:2023/2/5  10:12
*@Filename:PAT甲级1009 Product of Polynomials
*/#include <iostream>
#include <vector>using namespace std;int main() {int n, zhiShu, count = 0;float xiShu;vector<double> a(1001, 0.0);vector<double> result(2002, 0.0);/*先把第一个多项式保存下来*/scanf("%d", &n);for (int i = 0; i < n; ++i) {scanf("%d %f", &zhiShu, &xiShu);a[zhiShu] = xiShu;}/**当读入第二个多项式的时候进行循环* 每读入一个项,就把第一个多项式拿过来相乘* 得到的结果放在result中* */scanf("%d", &n);for (int i = 0; i < n; ++i) {scanf("%d %f", &zhiShu, &xiShu);for (int j = 0; j < 1001; ++j) {if (a[j] != 0) {result[j + zhiShu] += a[j] * xiShu;  //两个多项式相乘就是:指数相加、系数相乘}}}/**一定要在所有计算都完毕之后再去看一共有多少非零项* 不然可能出现某一项一开始的时候是非零的* 但是有负的系数把这项的抵消为0了* 这样的项不能出现在结果中* */for (int i = 2002; i >= 0; --i) {if (result[i] != 0) {count++;}}cout << count;for (int i = 2002; i >= 0; --i) {if (result[i] != 0.0) {printf(" %d %.1lf", i, result[i]);}}cout << endl;return 0;
}

总结

测试点0比较坑,一定要注意题干中没说系数不能为负数,那么就要把两项相乘后加到原有数组元素中导致元素的值变为0的情况。

我这给出一个测试用例,你们可以看一下自己的程序是否在这样的测试用例下仍旧能正确输出。

1 0 -1.2
1 0 0

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.dgrt.cn/a/391931.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章:

PTA甲级-1009 Product of Polynomials c++

文章目录题目内容Input Specification:Output Specification:Sample Input:Sample Output:一、题干大意二、题解要点三、具体实现总结题目内容 This time, you are supposed to find AB where A and B are two polynomials. Input Specification: Each input file contains …...

字符串模板

1.字符串模板基本使用 在ES6之前&#xff0c;想要将字符串和一些动态变量&#xff08;标识符&#xff09;拼接在一起&#xff0c;是非常麻烦的。 但是在ES6中提供了一种模板字符串 template string&#xff1a; 。使用 符号来编写字符串&#xff0c;这个字符串就称之为模板字…...

Web3 游戏中的创造者经济:从游戏到平台,用户生成内容的挑战

今天我们要探讨的是游戏。出于几个原因&#xff0c;游戏是为数不多的真正有机会在数字资产生态系统中扩展至十亿用户面向消费者的用例之一。 首先&#xff0c;游戏玩家已经习惯了数字资产&#xff1b;他们经常为游戏中的交易&#xff08;即道具&#xff09;付费。 其次&#x…...

SpringCloud系列(十)[MQ 篇] - RabbitMQ 初步学习及详细部署步骤

RabbitMQ 的官方概念是这样的: 它是一种实现了高级消息队列协议&#xff08;AMQP&#xff09;的开源消息代理软件, 也称之为面向消息的中间件. 在理解RabbitMQ 之前, 先来简单了解一下 MQ 的含义: MQ 其实就是 MessageQueue 的缩写, 也就是消息队列的意思, 字面上来看也就是存放…...

Gitflow工作流:一个健壮的用于管理大型项目的框架

title: Gitflow工作流&#xff1a;一个健壮的用于管理大型项目的框架 date: 2017-12-23 0:12:32 tags: GitflowGitGit Flow Workflow categories:源码管理 Gitflow工作流介绍 Gitflow工作流仍然用中央仓库作为所有开发者的交互中心&#xff0c;这和其它git的工作流一样&#x…...

c语言中的常见图形打印

前言 &#x1f388;个人主页:&#x1f388; :✨✨✨初阶牛✨✨✨ &#x1f43b;推荐专栏: &#x1f354;&#x1f35f;&#x1f32f; c语言初阶 &#x1f511;个人信条: &#x1f335;知行合一 &#x1f349;本篇简介:>:介绍c语言中的三角形与菱形打印分步介绍 效果展示图: …...

Python---私有化

专栏&#xff1a;python 个人主页&#xff1a;HaiFan. 专栏简介&#xff1a;Python基础已经更新完&#xff0c;接下来是Python面向对象的知识点。 私有化前言私有化属性set和get装饰器property前言 在做程序的过程中&#xff0c;有时候程序猿不想让外人动一些值&#xff0c;这…...

WebRTC音频系统 之audio技术栈简介-1

文章目录第一章 WebRTC技术栈简介1.1 视频会议中常见的服务端架构1.2 WebRTC 网络协议栈1.3 WebRTC 源码目录结构1.4 client侧技术栈1.5 WebRTC native编译以及debug1.6 APM模块1.7 ADM模块WebRTC是Google开源的Web实时音视频通信框架&#xff0c;其提供P2P的音频、视频和一般数…...

基于nodejs+vue社区互助平台- vscode项目

前端技术&#xff1a;nodejsvueelementui,视图层其实质就是vue页面&#xff0c;通过编写vue页面从而展示在浏览器中&#xff0c;编写完成的vue页面要能够和控制器类进行交互&#xff0c;从而使得用户在点击网页进行操作时能够正常。 Express 框架于Node运行环境的Web框架, 语言…...

【自动驾驶100问】第一问到第三问

配套视频&#xff1a; 自动驾驶100问第三问 1、四元数在表示空间旋转时的优势是什么&#xff1f; &#xff08;1&#xff09;四元数解决了其他3维空间旋转算法会遇到的恼人的问题&#xff0c;比如使用欧拉角来表示旋转操作时会遇到的万向节锁问题(Gimbal lock)&#xff1b; …...

MVVM理解、object.defineProperty、数据代理

1、MVVM理解 M&#xff1a;model 对应data数据 V&#xff1a;view 对应模板VM&#xff1a;viewmodel 对应vue实例对象 2、object.defineProperty 作用&#xff1a;给一个对象添加属性用 用法&#xff1a;Object.defineProperty(对象 ,添加的属性名称 ,{配置项…...

js querySelector() 说明

说明 1&#xff0c;querySelector()方法只会返回第一个匹配的元素。如果想要选择所有符合条件的元素&#xff0c;需要使用querySelectorAll()方法。 2&#xff0c;选择器中的特殊字符需要进行转义。例如&#xff0c;如果要选择class为"a.b"的元素&#xff0c;选择器应…...

看了华为的发布会,又学了一个新名词——灵犀通信

小枣君注&#xff1a;昨天&#xff0c;华为召开了2023春季新品发布会&#xff0c;推出了P60等一系列新品。作为一个通信老司机&#xff0c;我来说说发布会里和通信有关的一些细节。因为众所周知的原因&#xff0c;这个系列的手机只支持4G&#xff0c;不支持5G&#xff0c;非常可…...

代码随想录算法训练营第四十二天 | 416. 分割等和子集

背包问题之01背包问题基础&#xff1a; 视频讲解 &#xff08;一&#xff09;常见要求&#xff1a; 有n件物品&#xff0c;每个物品只有一个&#xff0c;和一个最多能背重量为w 的背包。第i件物品的重量是weight[i]&#xff0c;得到的价值是value[i] 。每件物品只能用一次&a…...

即时通讯技术文集(第11期):IM通信格式的选型及Protobuf专题 [共16篇]

为了更好地分类阅读52im.net 总计1000多篇精编文章&#xff0c;我将在每周三推送新的一期技术文集&#xff0c;本次是第11 期。 [- 1 -] 如何选择即时通讯应用的数据传输格式 [链接] http://www.52im.net/thread-276-1-1.html [摘要] 本文内容中对即时通讯传输格式的选择&…...

Java 通过反射获取方法与变量

0、反射技术 反射技术是Java生态中的重要内容&#xff0c;在Spring以及其他框架中得到了广泛的应用。 有了反射技术&#xff0c;我们可以在程序运行的过程中&#xff1a; 构建任意一个类的对象&#xff0c; 了解任意一个对象所属的类&#xff0c; 获悉任意一个类中的所有成…...

jdb调试问题集锦

https://bbs.kanxue.com/thread-210049.htm蓝铁 1 2017-8-25 19:40 4 楼 0 根据提示&#xff0c;可知&#xff0c;出错的地方是&#xff0c;android.app.ActivityThread.handleBindApplication(), 行4,400 查看源码可以发现&#xff0c;代码中指向的是app.onCreate() …...

北大面试集合部分

北大面试集合部分1.前言2. 集合部分1.前言 是敖丙出的一个面试的视频&#xff0c;面试的人是北大的硕士有两年的工作经验。 程序员面试北大研究生Java岗&#xff0c;中途离场&#xff0c;是不是玩不起&#xff1f; 2. 集合部分 Q1:集合你平时用的多的有哪些 集合的话像Coll…...

Sqlmap的基本使用

一&#xff0c;sqlmap支持的六种注入方式 1&#xff0c;基于布尔的盲注 通过返回页面判断条件真假的注入 2&#xff0c;基于时间的盲注 不能根据页面返回内容判断任何信息&#xff0c;用条件语句查看时间延迟语句是否执行&#xff08;即页面返回时间是否增加来判断&#xf…...

抽象简单的web

这个弹性盒子的主轴的开始是由左→右的方向&#xff0c;垂轴总是在主轴的上方到下方 知道了主轴垂轴的方向就可以通过三个属性进行布局了 弹性盒子全称叫弹性盒子布局 第一个属性&#xff1a;justify-content&#xff1a;flex-start&#xff08;默认值&#xff09; 第二个属…...