这个问题耗时90分钟才搞定,其中主要的逻辑用时30分钟,调输出格式用时60分钟。。。
我想起来这是我为什么很抵触去写OJ题,很多情况下是你想明白了问题的解法,但是在最后的格式输出上不能完全匹配,便被机器判定为错误的答案。
但是,做的多了,会爱上做OJ题,原因是,要准确匹配题中的所有要求,会逼着你认真思考问题的细节,哪怕是格式也要仔细判定。这不正是代码的特长,也是我们爱上写代码的原因吗?

OK,回到题目中来。

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

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

求解思路:定义一个结构体数组,两个成员:一个是系数一个是指数。因为指数绝对值不超过1000,那么最大字数是2000,开辟一个2001个结构体的数组.

这种算法的核心是:用数组下标标识指数的值,这个下标对应的元素值是其系数值。

#include <iostream>using namespace std;
typedef struct Node
{int coef;int expo;
} Node,*Poly;//下标标识指数值
Node a[1001]; //乘数
Node b[1001]; //被乘数
Node res[2001]; //结果
int Max(int a, int b)
{if(a > b){return a;}else {return b;}
}
int main()
{int n,m; //系数非零的项数cin>> n;for(int i = 0; i < n; i++){Node tmp;cin >> tmp.coef >> tmp.expo; //先系数后指数a[tmp.expo] = tmp; //存进来结点值}cin >> m;for(int i = 0; i < m; i++){Node tmp;cin >> tmp.coef >> tmp.expo; //先系数后指数b[tmp.expo] = tmp; //存进来结点值}//数据存储完毕,进行乘法计算for(int i = 0; i < 1001; i++) //指数低的在前{for(int j = 0; j< 1001; j++){res[a[i].expo+b[j].expo].coef += a[i].coef * b[j].coef;res[a[i].expo+b[j].expo].expo = a[i].expo+b[j].expo;}}int flag;// 针对格式的问题,首先找到最后一个系数非零的项for(int i = 2001; i >=0; i--){if(res[i].coef != 0){flag = i;}}for(int i = 2000; i >= 0; i--){if(res[i].coef != 0 && i != flag) //乘法计算结果输出{cout << res[i].coef << " "<< res[i].expo << " ";}if(i == flag){cout << res[i].coef << " "<< res[i].expo;}}cout << endl;for(int i = 1001; i >= 0; i--){if(a[i].coef+b[i].coef != 0){flag = i;}}for(int i = 1000; i >= 0; i--){//加法运算结果if(a[i].coef+b[i].coef != 0 && i != flag){cout << a[i].coef+ b[i].coef << " " << Max(a[i].expo,b[i].expo) << " ";}if(i == flag){cout << a[i].coef+ b[i].coef << " " << Max(a[i].expo,b[i].expo);}}cout << endl;return 0;
}

问题求解和手算方法一致,不再多说。

以上。

PTA--一元多项式的乘法与加法运算相关推荐

  1. PTA 一元多项式的乘法与加法运算 设计函数分别求两个一元多项式的乘积与和。

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

  2. PTA:编程题:7-1 一元多项式的乘法与加法运算 (20 分)

    大一下半期数据结构 数据结构题目集 一元多项式的乘法与加法运算 设计函数分别求两个一元多项式的乘积与和. 输入格式: 输入分2行,每行分别先给出多项式非零项的个数,再以指数递降方式输入一个多项式非零项 ...

  3. 7-2一元多项式的乘法与加法运算

    title: "7-2一元多项式的乘法与加法运算(20" date: 2018-06-14T01:09:46+08:00 tags: [""] categori ...

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

    7-2 一元多项式的乘法与加法运算 (20 分) 设计函数分别求两个一元多项式的乘积与和. 输入格式: 输入分2行,每行分别先给出多项式非零项的个数,再以指数递降方式输入一个多项式非零项系数和指数(绝 ...

  5. 浙大数据结构题集02-线性结构2 一元多项式的乘法与加法运算python版

    浙大数据结构题集02-线性结构2 一元多项式的乘法与加法运算python版 设计函数分别求两个一元多项式的乘积与和. 本文用链表做的 输入格式: 输入分2行,每行分别先给出多项式非零项的个数,再以指数 ...

  6. PTA->一元多项式的乘法与加法运算

    一元多项式的乘法与加法运算 1.问题描述 2.问题分析 2.1定义多项式数据结构结点数据PolyNode 2.2将数据结点连接到多项式后面Attach 2.3读入多项式数据结点ReadPoly 2.4 ...

  7. 习题3.6 一元多项式的乘法与加法运算 (20 分)(有测试点具体数据)c语言链表版本

    习题3.6 一元多项式的乘法与加法运算 (20 分) 设计函数分别求两个一元多项式的乘积与和. 输入格式: 输入分2行,每行分别先给出多项式非零项的个数,再以指数递降方式输入一个多项式非零项系数和指数 ...

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

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

  9. mooc浙大数据结构PTA习题之一元多项式的乘法与加法运算

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

  10. 浙江大学 PTA习题3.6 一元多项式的乘法与加法运算 (20分)

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

最新文章

  1. 使用photoshop 10.0制作符合社保要求的照片
  2. JavaScript 公有 私有 静态属性和方法
  3. 二十九、Node.js连接Mysql和MongoDB数据库CURD操作
  4. 07_数据库创建,添加c3p0操作所需的jar包,编写c3p0-config.xml文件,编写User.java,编写jdbcUtils.java实现操作数据库的模板工具类,UserDao编写,Dao
  5. 如何查看header object和category 03的IBASE的relationship关系
  6. php中时差怎么改,我的PHP时差功能可以改进吗?
  7. python外卷(10)--取整
  8. 微信红包接口 java_【java微信开发】红包接口调用
  9. SQL SERVER日期函数详细用法
  10. CentOS 7 安装 配置 Nginx + PHP
  11. 「代码随想录」746. 使用最小花费爬楼梯【动态规划】力扣详解!
  12. 关于Validform
  13. 车间调度建模系列4|扩展析取图之工序相关性
  14. unity粒子特效与ui遮盖显示
  15. 前端布局篇之文字居中显示
  16. 金融,财务,融资相关知识(三)
  17. html计时器记 天数,手机如何记天数 记天数软件有哪些
  18. 00_简单常识介绍——NOIP/NOI/IOI(信息学奥林匹克竞赛)
  19. 洛谷 P4707 【重返现世】
  20. 【STM32H7教程】第91章 STM32H7的FDCAN总线基础知识和HAL库API

热门文章

  1. 【学习OpenCV4】如何操作图像中的像素?
  2. php 正则匹配 文件,php – 正则表达式匹配.htaccess中的一系列文件类型
  3. python输出语句格式 f_Python基础之输出格式和If判断
  4. python抓取图片数字_Python OCR提取普通数字图形验证中的数字
  5. python 生成nc文件_Python生成器处理大文本文件的代码
  6. qps多少才算高并发_AGV小车价格多少才算合适?
  7. char转化为cstring_C语言100题集合001-将一个数字字符串转换为一个整数
  8. java applet运行jmx,通过tomcat设置jvm及添加jmx远程访问、gc输出日志
  9. 求向量的垂线_高考数学填空题如何快速求直线关于直线对称的直线方程
  10. websocket没准备好如何解决_惠普打印机打印没反应如何解决 惠普打印机打印没反应解决方法【详解】...