用C或C++语言设计并实现一个一元稀疏多项式的简单计算器。

vikecky 2011-12-03 03:01:29
用C或C++语言设计并实现一个一元稀疏多项式的简单计算器。
一个稀疏多项式简单计算器的基本功能是:
输入并建立多项式。
输入多项式,序列按指数降序排列。
多项式A(x)和B(x)相加,并建立多项式A(x)+B(x)。
多项式A(x)和B(x)相减,并建立多项式A(x)-B(x)。
给定x的值,计算多项式。

算法和方法
(1)首先建立一个结构体,接受系数和指数,还有后一项的地址。用malloc开辟动态内存空间,来保存输入的系数和指数。用这种方法建立两个链表,存两个多项式。
(2)建立一个排序函数,用冒泡法排序链表,按指数由从大到小的程序排列。再建立一个输出函数,分别将排列好的链表输出。
(3)重新建立一个链表,用来保存加法的多项式。加法实现方法:判断指数的大小,指数大的项放在加法链表的前面,指数小的项放在加法链表的后面。要是有指数相当的项,则先系数相加,然后按指数大小的顺序放入加法链表中,最后若某一个多项式中有剩余的项,则全放在加法链表的末尾,然后用前面的输出函数,将加法链表输出。
(4)再建立一个链表用来保存减法结果。用第一个多项式减第二个多项式,从指数大的开始,跟加法链表的方法基本一样,无非是第一个多项式中某一指数在第二个多项式中没有的话,就直接插入减法链表中,第二个多项式中某一指数在第一个多项式中没有的话,先将这一项的系数取相反数,再按指数大小插入减法链表中。指数相同的则要用第一个多项式的系数减去第二个多项式的系数,然后插入减法链表中。最后用输出函数将减法链表输出。
(5)用头文件math.h中的pow命令,来计算次幂问题,用系数乘以给定值的n次幂,最后输出结果。
(6)最后用free函数将所有的链表结点都释放掉。
...全文
911 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

64,648

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧