递归算法是什么?
作者:网络转载 发布时间:[ 2013/1/10 9:50:23 ] 推荐标签:
这个流程图你懂得,看文件数目了,大家自己分析吧。
④汉诺塔问题
这是递归的超经典的例子,几乎每本程序设计书上谈到递归都会介绍。具体情景不再赘述。以我上述的方法观之:
(1)递归的出口在于盘子数为1的时候 。
(2)向出口逼近:如果不是1,是n ,则我们先挪动上面n-1块盘子,等上面挪完,即递归返回的时候,我们挪动底下的盘子。
求解代码:
[html] view plaincopyprint?
import javax.swing.JOptionPane;
/*
* time:2012.12.2
* author:王金宇
* description:
*/
public class Hanoi {
private final static String from = "盘子B";
private final static String to = "盘子C";
private final static String mid = "盘子A";
public static void main(String[] args) {
String input = JOptionPane.showInputDialog("请输入你要移动的盘子数");
int num = Integer.parseInt(input);
Hanoi.move(num, from, mid, to);
}
private static void move(int num, String from2, String mid2, String to2) {
if (num == 1) {
System.out.println("移动盘子1 从" + from2 + "到" + to2);
} else {
move(num - 1, from2, to2, mid2);
System.out.println("移动盘子" + num + " 从" + from2 + "到" + to2);
move(num - 1, mid2, from2, to2);
}
}
}
import javax.swing.JOptionPane;
/*
* time:2012.12.2
* author:王金宇
* description:
*/
public class Hanoi {
private final static String from = "盘子B";
private final static String to = "盘子C";
private final static String mid = "盘子A";
public static void main(String[] args) {
String input = JOptionPane.showInputDialog("请输入你要移动的盘子数");
int num = Integer.parseInt(input);
Hanoi.move(num, from, mid, to);
}
private static void move(int num, String from2, String mid2, String to2) {
if (num == 1) {
System.out.println("移动盘子1 从" + from2 + "到" + to2);
} else {
move(num - 1, from2, to2, mid2);
System.out.println("移动盘子" + num + " 从" + from2 + "到" + to2);
move(num - 1, mid2, from2, to2);
}
}
}
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11