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

设计函数分别求两个一元多项式的乘积与和的问题
题目如下:
设计函数分别求两个一元多项式的乘积与和。

输入格式:
输入分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

我的代码如下

img

img

img

img

img

img

img

有些情况是正确的,而有些情况是输出不了,也不知道什么原因,请指教一下 谢谢~

img

img

img

img

  • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/7744737
  • 除此之外, 这篇博客: C语言实现八大排序算法详解及其性能之间的中的 这里需要对堆有一定的了解,堆就是一个比较特殊的完全二叉树,在最大堆里,每个节点的值都大于其左右两个孩子节点的值。这就是最大堆。反之就是最小堆。拿最大堆举例子,每次堆顶的元素值,不就是当前数列的最大吗?这不就成选择排序里的简单排序了吗?找完之后,将他和完全二叉树里最后一个结点的值进行交换,然后做一个自顶向下的自我调整,将他再次调整成一个完全二叉堆。第二次取最大的树,这时我们需要将上一次找到的结点屏蔽掉,不然会陷入一个死循环。无数次找完之后,再按层序的思想将二叉树里的数据遍历到一个数组当中,这时的数组为一个有序的数组。 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 算法思想

  • 以下回答由chatgpt基于相关博客总结生成:

    问题分析: 这道题我们需要利用线性代数中的多项式乘法和加法的原理来完成,所以我们需要将两个多项式表示出来之后按照加法和乘法规则来实现该问题。

    具体算法流程: 1. 按照输入格式读入两个多项式; 2. 逐项进行多项式乘法计算,存入新的数组中; 3. 对新的数组同次项的处理,将同次项的系数相加,得到和多项式; 4. 输出结果。

    核心代码: