题目描述
给定一个表达式,求其分数计算结果。
表达式的限制如下:
- 所有的输入数字皆为正整数(包括0)
- 仅支持四则运算(±*/)和括号
- 结果为整数或分数,分数必须化为最简格式(比如6,3/4,7/8,90/7)
- 除数可能为0,如果遇到这种情况,直接输出"ERROR"
- 输入和最终计算结果中的数字都不会超出整型范围
用例输入一定合法,不会出现括号匹配的情况
输入描述
字符串格式的表达式,仅支持±*/,数字可能超过两位,可能带有空格,没有负数
长度小于200个字符
输出描述
表达式结果,以最简格式表达
- 如果结果为整数,那么直接输出整数
- 如果结果为负数,那么分子分母不可再约分,可以为假分数,不可表达为带分数
- 结果可能是负数,符号放在前面
用例
| 输入 | 1 + 5 * 7 / 8 |
|---|---|
| 输出 | 43/8 |
| 说明 | 无 |
| 输入 | 1 / (0 - 5) |
|---|---|
| 输出 | -1/5 |
| 说明 | 符号需要提到最前面 |
| 输入 | 1 * (3*4/(8-(7+0))) |
|---|---|
| 输出 | 12 |
| 说明 | 注意括号可以多重嵌套 |
符号运算解析

这篇博客主要介绍了华为OD机试中关于分数运算的真题,涵盖D卷+C卷+A卷+B卷的内容。提供了解题思路和四种编程语言(C++、Java、JavaScript、Python)的代码实现。题目要求计算给定正整数表达式的结果,确保分数处于最简形式,并处理除数为0的情况。
订阅专栏 解锁全文
1145

被折叠的 条评论
为什么被折叠?



