![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
递归
文章平均质量分 53
Putarmor
世间万物皆在冲!加油!
展开
-
剑指10 矩形覆盖
题目描述: 我们可以用21的小矩形横着或者竖着去覆盖更大的矩形。请问用n个21的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? 如下图所示,n=3时,2*3的矩形块有3种覆盖方法。 分析思路: 当n为0时,不需要用2*1块覆盖,直接返回0 当n为1时,只存在一种情况,直接返回1 当n为2时,存在两种情况:第一种在n=1基础上扩展一个2*1,另外一种是对第一种的变形 当n为3时,分为3种情况,如蓝色图所示,基于n=2基础上:①在2(21)基础上扩展一个21;②在2(12)基础上扩展一个2原创 2021-03-24 10:31:51 · 76 阅读 · 0 评论 -
Java完美实现经典汉诺塔问题
汉诺塔问题问题描述解决思路代码实现 问题描述 汉诺塔问题起源于印度神话,也叫河内塔。相传它源于印度神话中的大梵天创造的三个金刚柱,一根柱子上叠着上下从小到大64个黄金圆盘。大梵天命令婆罗门将这些圆盘按从小到大的顺序移动到另一根柱子上,其中大圆盘不能放在小圆盘上面。当这64个圆盘移动完的时候,世界就将毁灭。 解决思路 当只有一个盘子的时候,只需要从将A塔上的一个盘子移到C塔上。 当A塔上有两个盘子是,先将A塔上的1号盘子(编号从上到下)移动到B塔上,再将A塔上的2号盘子移动的C塔上,最后将B塔上的.原创 2020-12-18 21:54:06 · 263 阅读 · 1 评论 -
递归实现打印整数的每一位
public static void daYin(int n) { //如果a大于9,那么整除10调用本身 if (n > 9) { daYin(n / 10); } //a小于10时,模10打印 System.out.print(n % 10 + " "); } public static void main(String[] args) { int nu...原创 2020-12-18 12:07:46 · 192 阅读 · 1 评论 -
Java青蛙跳台阶问题
我不仅会呱 我还会跳!我是。。。 青蛙跳台阶问题描述解决思路实现代码 问题描述 一只青蛙一次可以跳上1级台阶,也可以一次跳上2级台阶,请问跳上n级台阶,该请娃一共有多少种跳法? 解决思路 ①如果只有1级台阶,那显然只有一种跳法。 ②如果有2级台阶,那么就有2种跳法,一种是分2次跳。每次跳1级,另一种就是一次跳2级。 ③如果台阶级数大于2,设为n的话,这时我们把n级台阶时的跳法看成n的函数,记为,第一次跳的时候有2种不同的选择:一是第一次跳一级,此时跳法的数目等于后面剩下的n-1级台阶.原创 2020-12-18 11:16:19 · 1126 阅读 · 2 评论