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

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

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

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

我的解题思路如下:
1.因为结果多项式的大小是不确定的,所以采用链表存多项式。用read函数读入多项式 l1 和 l2 ,用 L1 记录加和的结果多项式,用 L2 记录乘积的结果多项式。

*2.把解题过程分为几个简单的函数模块:read(读入)函数,print(输出)函数,add(加和)函数,multi(乘积)函数,除此之外,为了进一步简化,我引入了一个insert(插入)函数。

3.insert函数:该函数的功能是在链表的合适位置上插入一个节点,使链表指数仍然保持有序,如果插入结点的指数等于其中某个结点的指数,则合并同类项,若合并同类项之后该项的系数等于0,就删除这个结点。

4.add函数:把多项式 l2 的每一项利用insert函数插入到多项式 l1 中,就可以得到两个多项式之和。

5.multi函数:先创建一个空的多项式head,然后依次用 l1 的每一项去与 l2 相乘(系数相乘,指数相加),把每一项的结果insert到head中去,最后返回head即可。

6.其他见答案代码注释

我的代码如下:

#include <stdio.h>
#include <stdlib.h>
typedef struct Node *List;
typedef struct Node
{
   
    int a;
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值