递归典型算法
来源:互联网 发布:徐金华seo 编辑:程序博客网 时间:2024/05/16 13:54
递归典型算法
汉诺塔算法
算法描述:
1,有三根柱子,A B C,A上有若干个碟子 从大到小排列 从下往上
2,每次移动一块碟子,小的只能叠在大的上面
3,把所有的碟子都从A柱子全部移动到C柱子上
public static void Tower_of_Hanoi(int topN, char from, char inter, char to) { /**递归的典型,汉诺塔算法 * 1,有三根柱子,A B C,A上有若干个碟子 从大到小排列 从下往上 * 2,每次移动一块碟子,小的只能叠在大的上面 * 3,把所有的碟子都从A柱子全部移动到C柱子上 * */ if (topN == 1){ System.out.println("Disk 1 from " + from + " to " + to); }else { Tower_of_Hanoi(topN - 1, from, to, inter); System.out.println("Disk " + topN + " from " + from + " to " + to); Tower_of_Hanoi(topN - 1, inter, from, to); } }
阶乘
算法描述:
1,l=1 时 f(1)=1
2,f(l)=l*f(l-1)
public static long factorial(int l) {long f=1; if (l==1) { f=1; }else { f= factorial(l-1)*l; } return f; }
测试用例
调用以上两个方法
public static void main(String[] args) { Tower_of_Hanoi(6, 'A', 'B', 'C'); System.out.println("6的阶乘是:"+factorial(6));}
输出结果:
Disk 1 from A to B
Disk 2 from A to C
Disk 1 from B to C
Disk 3 from A to B
Disk 1 from C to A
Disk 2 from C to B
Disk 1 from A to B
Disk 4 from A to C
Disk 1 from B to C
Disk 2 from B to A
Disk 1 from C to A
Disk 3 from B to C
Disk 1 from A to B
Disk 2 from A to C
Disk 1 from B to C
Disk 5 from A to B
Disk 1 from C to A
Disk 2 from C to B
Disk 1 from A to B
Disk 3 from C to A
Disk 1 from B to C
Disk 2 from B to A
Disk 1 from C to A
Disk 4 from C to B
Disk 1 from A to B
Disk 2 from A to C
Disk 1 from B to C
Disk 3 from A to B
Disk 1 from C to A
Disk 2 from C to B
Disk 1 from A to B
Disk 6 from A to C
Disk 1 from B to C
Disk 2 from B to A
Disk 1 from C to A
Disk 3 from B to C
Disk 1 from A to B
Disk 2 from A to C
Disk 1 from B to C
Disk 4 from B to A
Disk 1 from C to A
Disk 2 from C to B
Disk 1 from A to B
Disk 3 from C to A
Disk 1 from B to C
Disk 2 from B to A
Disk 1 from C to A
Disk 5 from B to C
Disk 1 from A to B
Disk 2 from A to C
Disk 1 from B to C
Disk 3 from A to B
Disk 1 from C to A
Disk 2 from C to B
Disk 1 from A to B
Disk 4 from A to C
Disk 1 from B to C
Disk 2 from B to A
Disk 1 from C to A
Disk 3 from B to C
Disk 1 from A to B
Disk 2 from A to C
Disk 1 from B to C
6的阶乘是:720
- c典型算法 递归
- c典型算法 递归
- 典型的递归算法
- 递归典型算法
- 典型递归算法例子-------Python实现
- 简析递归思想及其典型算法
- 几道典型的递归算法例题
- 典型递归算法——常见hanoi算法之扩展
- 典型算法及应用——“递归法”探究
- 【典型例题】遍历文件夹下面的文件;(递归算法)
- (1.1.7)递归算法典型特征及经典递归例子代码实现
- 典型递归问题1
- 典型递归问题2
- 典型递归问题3
- 典型递归问题
- 汉诺塔(典型递归)
- 递归的典型示例
- 典型递归问题
- Docker的上手(Ubuntu140.4 Mate)
- 自动化测试
- LR2
- Java数组练习(三)选择排序
- springmvc 接受 map类型的参数
- 递归典型算法
- QT中显示GIF图片
- YOU NEED PYTHON writeup
- angula初探
- 改变下拉框动态加载文本框的值
- Java数组练习(四)冒泡排序
- 为什么在sql查询中需要使用xxx is null而不能使用xxx=null详解
- PHP 防止盗链$_SERVER["HTTP_REFERER"]的用法举例
- K3Cloud动态表单模拟新增按钮功能