java - 在 Java 中实现递归

标签 java recursion

需要说明的是,这不是家庭作业,我在业余时间学习 CS!

我最近买了一本查尔斯·菲利普斯 (Charles Phillips) 的书,书名是《逻辑思维的 50 个谜题》。我启动了其中一个,然后我想到我可以使用递归来解决问题。这是(转述的)问题:

Insert a mathematical operator (+, -, ÷, x) in each of the spaces to solve the equation:

6 _ 3 _ 5 _ 7 _ 4 _ 8 = 13

据我了解,为了使用递归解决这个问题,我首先需要确定一个基本案例。但是,我在执行此操作时遇到了问题。

所以我的问题是,什么是可能的基本案例,我应该如何开始实现它?递归函数可能是什么样子(参数、返回类型等)?(代码很有用)!

这是我目前所拥有的:我认为接近工作

查看我的实现答案

注意我正在使用 Java

最佳答案

我认为停止条件应该意味着满足方程式:所有运算符都已填写,并且运算结果正确。

我会将等式表示为解析树,叶子为数字,父代为运算符。树自然适合递归,因为它是分层数据结构。

做一个运算符假设,其中根运算是减号,右 child 是期望值 (13),左 child 是左边。添加运算符、评估树并回溯直到满足停止条件。

关于java - 在 Java 中实现递归,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14537995/

相关文章:

java - Spring Boot 项目中的作业调度库

python - 在一个表达式中打印斐波那契数列的前 n 个数

php - 如何通过查询mysql中的自引用表来获得递归结果?

java - 我的 Boggle 程序找不到所有有效单词 - Java

python - 如何收集递归回溯的结果?

java - 从对象访问数据而不是使用 saveAsTextFile 保存数据

java - 在 JAX-RS 中的查询参数中转义 `%` 符号

java - 在 Jackson 中对单个实体使用两个 JsonSerializer

java.util.Locale 使国家/地区小写

javascript - 递归,递归应用示例