当前位置:网站首页 > Java基础 > 正文

毕向东java基础



文章目录

  • 214. 递归解决什么问题
  • 215. 递归执行机制1
  • 216. 递归执行机制2
  • 217 递归执行机制3
  • 217.1 阶乘
  • 218. 递归执行机制4
  • 219. 斐波那契数列
  • 220. 猴子吃桃
  • 221. 222. 223. 224. 老鼠出迷宫1,2,3,4
    • 224.1 毕向东java基础 什么是回溯
  • 225. 汉诺塔
  • 226. 八皇后

214. 递归解决什么问题

简单的说: 递归就是方法自己调用自己,每次调用时传入不同的变量.递归有助于编程者解决复杂问题,同时可以让代码变得简洁
递归能解决的问题:

215. 递归执行机制1

 

运行结果:
n=2
n=3
n=4
函数调用栈过程:

【注】每一个栈都会完整的执行方法,在哪里调用就在哪里返回。

216. 递归执行机制2

将上一节课的代码的if条件假如else如下

 

就变成结果只有
n=2
其函数调用栈相当于下图:

217 递归执行机制3

217.1 阶乘

 

运行结果:
5 的阶乘 res =120

218. 递归执行机制4

219. 斐波那契数列

请使用递归的方式求出斐波那契数1,1,2,3,5,8,13…给你一个整数 n n n,求出它的值是多少

 

220. 猴子吃桃

猴子吃桃子问题:有一堆桃子,猴子第一天吃了其中的一半,并再多吃了一个,以后每天猴子都吃其中的一半,然后再多吃一个。当到第10天时,想再吃时(即还没吃),发现只有1个桃子了。问题:最初共多少个桃子?(我以前写过一个循环的版本,现在用递归写,看来有些数据要写死了,比如第10天就得固定下来)

 

221. 222. 223. 224. 老鼠出迷宫1,2,3,4

 

运行结果:
当前地图情况:
1 1 1 1 1 1 1
1 0 0 0 0 0 1
1 0 0 0 0 0 1
1 1 1 0 0 0 1
1 0 0 0 0 0 1
1 0 0 0 0 0 1
1 0 0 0 0 0 1
1 1 1 1 1 1 1
老鼠找路情况:
1 1 1 1 1 1 1
1 2 0 0 0 0 1
1 2 2 2 0 0 1
1 1 1 2 0 0 1
1 0 0 2 0 0 1
1 0 0 2 0 0 1
1 0 0 2 2 2 1
1 1 1 1 1 1 1

修改策略:上右下左

 

运行结果:
当前地图情况:
1 1 1 1 1 1 1
1 0 0 0 0 0 1
1 0 0 0 0 0 1
1 1 1 0 0 0 1
1 0 0 0 0 0 1
1 0 0 0 0 0 1
1 0 0 0 0 0 1
1 1 1 1 1 1 1
老鼠找路情况:
1 1 1 1 1 1 1
1 2 2 2 2 2 1
1 0 0 0 0 2 1
1 1 1 0 0 2 1
1 0 0 0 0 2 1
1 0 0 0 0 2 1
1 0 0 0 0 2 1
1 1 1 1 1 1 1

224.1 什么是回溯


在下标(2,2)处设置障碍物,小球先向下走,可以走通,到达下标(1,2),然后测试发现上下左右都走不通(上走不通是因为之前走过1,1下标点),于是它回到上一个栈,然后根据刚才走的情况,判断向右走

后面能用数据结构算法求出最短路径

225. 汉诺塔

  • 思路
    如果A塔只有一个盘子,直接从A塔移动到C塔
    如果A塔有很多盘子,把最后一个盘子上面的所有盘子视为一个盘子,将A塔上面这个盘子堆移动到B塔,然后将A塔最下面的盘子移动到C塔,最后将B塔这一堆移动到C塔,递归思想只考虑这个中间过程和跳出递归的过程。
 

运行结果:
A->C
A->B
C->B
A->C
B->A
B->C
A->C
A->B
C->B
C->A
B->A
C->B
A->C
A->B
C->B
A->C
B->A
B->C
A->C
B->A
C->B
C->A
B->A
B->C
A->C
A->B
C->B
A->C
B->A
B->C
A->C

226. 八皇后

八皇后问题,是一个古老而著名的问题,是回溯算法的典型案例。该问题是国际西洋棋棋手马克斯·贝瑟尔于 1848 年提出:在 8×8 格的国际象棋上摆放八个皇后,使其不能互相攻击,即:任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。

 

运行结果
……太长了,直接看最后
解法92:
# # # # # # # o
# # # o # # # #
o # # # # # # #
# # o # # # # #
# # # # # o # #
# o # # # # # #
# # # # # # o #
# # # # o # # #

  • 上一篇: java基础日暮
  • 下一篇: java基础什么课
  • 版权声明


    相关文章:

  • java基础日暮2025-03-31 16:34:03
  • 0基础java推荐2025-03-31 16:34:03
  • java基础什么书好2025-03-31 16:34:03
  • java零基础入门书籍2025-03-31 16:34:03
  • java异常基础讲解2025-03-31 16:34:03
  • java基础什么课2025-03-31 16:34:03
  • java语言基础内容2025-03-31 16:34:03
  • java大学基础概念2025-03-31 16:34:03
  • java框架基础书籍2025-03-31 16:34:03
  • java基础入门清华2025-03-31 16:34:03