• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

求表达式展开算法

Spirit 2018-12-06 浏览量:552

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

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

求思路

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

0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 两个数组X和Y

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

    注意,在形式中要表现为

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

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

    • 发布于 2018-12-06
    • 举报
    • 评论 2
    • 0
    • 0
Spirit 回复了 xdsnet:只有与、或运算 问题是可能有多重括号 回复
xdsnet 回复了 xdsnet:那就是编译原理中的 逆波兰式 吧 回复

其他答案 数量:5
  • 可以了解一下四元式转化为逆波兰式,这样就可以运算表达式的
    • 发布于2018-12-06
    • 举报
    • 评论 0
    • 2
    • 0

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

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

    • 发布于2018-12-06
    • 举报
    • 评论 0
    • 0
    • 0

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

    • 发布于2018-12-09
    • 举报
    • 评论 0
    • 0
    • 0

  • 建议用数组来处理,对你的数组做一个矩阵的处理和展开,进行互换运算
    • 发布于2019-01-15
    • 举报
    • 评论 0
    • 0
    • 0

  • 觉得用结构体好一点,对不同的数据用不同的成员处理
    • 发布于2019-01-17
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

求表达式展开算法