关于前缀表达式

关于前缀表达式前缀表达式例如 34 22 24 11 12 3 5 23 12 11 写成前缀表达式就是 3422 5 23 1211 前缀表达式的运算法则就是如果读取的是一个运算符号 就向下寻找两个数据进行运算 递归的思想如何读取数据和字符其实不用开很多字符数组 就只用

前缀表达式

递归的思想

如何读取数据和字符

递归函数如何处理传递进来的数据或者运算符号

秉承一个思路:如果是运算符号就向下寻找两个数据,然后用相应的运算符号来激素那结果并且返回给上一个函数;如果是数字,就转换成浮点数返回给上一个函数。

实现方法

double solve() { cin >> digit_or_num; if (digit_or_num[0] == '+') return solve() + solve(); if (digit_or_num[0] == '-') return solve() - solve(); if (digit_or_num[0] == '*') return solve() * solve(); if (digit_or_num[0] == '/') return solve() / solve(); else return atof(digit_or_num);//将字符串转化为浮点数 } 

我的脑回路

思考目的:每一个函数需要什么样的参数来实现代码的目的,这个题需要每次返回一个浮点数。如果是运算符号,就要获得两个浮点数,所以调用两次函数,分别获得一个浮点数;如果是数字,就可以返回一个合法的浮点数,供上一个函数利用。

代码

(悄咪咪)放上来递归函数的代码应该主函数不需要了吧,主函数只需要控制输出格式就行了。

后记

傻fufu的博主依然不知道怎么控制代码块的颜色。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/231359.html原文链接:https://javaforall.net

(0)
上一篇 2026年1月15日 下午8:01
下一篇 2026年1月15日 下午8:22


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号