求表达式展开算法

关注

技术 嵌入式 Spirit    2018-12-06   |   浏览量 106  

形如(A+B)*(C+D)这样的表达式,需要展开为

A*C+A*D+B*C+B*D

求思路

注意,不是求运算结果,是要展开

最佳答案

  • xdsnet 发表于2018-12-06

    两个数组X和Y

    遍历X中元素,分别与Y中元素相乘,对所有乘积求和 就展开了

    注意,在形式中要表现为

    类似可以求(a+b+c+...)*(d+e+f...)

    注意,里面只有加号的,非加号要先统一为加号。

    举报 评论2 0

    Spirit 回复了 xdsnet:只有与、或运算 问题是可能有多重括号 回复
    xdsnet 回复了 xdsnet:那就是编译原理中的 逆波兰式 吧 回复

其他答案

  • yuzhenhu 发表于 2018-12-06

    可以了解一下四元式转化为逆波兰式,这样就可以运算表达式的

    回答点赞:   great_CC xdsnet 举报 评论 2

  • 这是经国 发表于 2018-12-06

    这要解析括号与*的运算规则了,

    设置成两个数组,进行两个for的运算

    举报 评论 0

  • donatello 发表于 2018-12-09

    其实用两个数组即可解决,数组A存左括号的元素,数组B存右括号的元素,只需要将数组A所有元素都与数组B元素逐个相乘最后求和即可,时间复杂度为O^2。

    举报 评论 0

  • Jing_Wang 发表于 2019-01-15

    建议用数组来处理,对你的数组做一个矩阵的处理和展开,进行互换运算

    举报 评论 0

  • Florrie 发表于 2019-01-17

    觉得用结构体好一点,对不同的数据用不同的成员处理

    举报 评论 0

我来回答

试用推荐

基于stm32

产品总数:8个  申请人数:223

距离结束时间:

推荐达人 更多>

  • 向悫 向ta提问

    川楠

    一切能用程序解决的问题都不是问题

    在行: 单片机综合应用 硬件设计

  • 靳飞 向ta提问

    汉云

    在路上的Linuxer

    在行: DSP技术 STM32讨论区

  • 徐珂靖 向ta提问

    xukejing

    规格严格,功夫到家

    在行: 开发板综合 Linux 系统

  • 袁建明 向ta提问

    河北博联科技有限公司 研发部经理

    日知其所亡

    在行: 嵌入式 Linux 系统

  • 张峰 向ta提问

    光学总工

    用心工作,用心生活

    在行: 嵌入式 Linux 系统

完成答题
赶快去开启您的宝箱吧