设计算法实现一元多项式的简单运算.基本要求:(1) 输入并建立多项式;(2) 输出多项式;(3) 多项式加法(4) 多项式减法.测试数据:(1)(2x+5x8-3.1x11)+(7-5x8+11x9)=(-3.1x11+11x9+2x+7)(2)(6x-3-x+4.4x2-1.2x9)-(―6x―3-+5.4x2-x2+7.8x15) =(―7.8x15―1.2x9+12x―3―x)(3)(1+x+x2+x3+x4+x5)+(―x3―x4)=(1+x+x2+x5)(4)(x+x3)+(―x―x3)=0(5)(x+x100)+(x100+x200)=(x+2x100+x200)(6)(x+x2+x3)+0=x+x2+x3
问题描述:
设计算法实现一元多项式的简单运算.
基本要求:
(1) 输入并建立多项式;
(2) 输出多项式;
(3) 多项式加法
(4) 多项式减法.
测试数据:
(1)(2x+5x8-3.1x11)+(7-5x8+11x9)=(-3.1x11+11x9+2x+7)
(2)(6x-3-x+4.4x2-1.2x9)-(―6x―3-+5.4x2-x2+7.8x15) =(―7.8x15―1.2x9+12x―3―x)
(3)(1+x+x2+x3+x4+x5)+(―x3―x4)=(1+x+x2+x5)
(4)(x+x3)+(―x―x3)=0
(5)(x+x100)+(x100+x200)=(x+2x100+x200)
(6)(x+x2+x3)+0=x+x2+x3
答
1用两个堆栈来分别存储读取的数据和符号,建一个数组来存储符号优先级.
2存数和符号,遇到符号判断优先级(和堆栈最上层的对比,如果为高优先级)取其两边的数计算
3将结果存入堆栈(删除已经用过的数据和符号),重复2
关键是优先级判断还有数和符号分开存储