汉诺塔问题
程序员文章站
2024-03-20 13:08:34
...
汉诺塔问题,
当只有一个圆盘的时候,需要a–>c,当有两个的时候需要a–>b,a---->c,b---->c
使用递归实现
package Test1;
import java.util.Scanner;
/*
*2019/08/15
*/
public class Hanoi {
static int index = 0;
public static void main(String[] args) {
System.out.println("请输入汉诺塔层数");
Scanner input = new Scanner(System.in);
int i = input.nextInt();
hanio(i,'a','b','c');
System.out.println("共需要走" + index + "步");
}
public static void hanio(int n,char a,char b,char c){
if(n ==1){
System.out.println("n = " + n + a +"---->" + c);
index++;
}else {
//n--;
hanio(n-1,a,c,b);
System.out.println("n = " + n + a +"---->" + c);
hanio(n-1,b,a,c);
index++;
}
}
}
上一篇: 排序-选择排序