0
点赞
收藏
分享

微信扫一扫

手把手带你解析蓝桥云课《算法很美》--2.6递归经典问题:汉诺塔游戏


手把手带你解析蓝桥云课《算法很美》--2.6递归经典问题:汉诺塔游戏_游戏

在1下面切一刀,不可行

手把手带你解析蓝桥云课《算法很美》--2.6递归经典问题:汉诺塔游戏_算法_02

在N上面切一刀,可行:

手把手带你解析蓝桥云课《算法很美》--2.6递归经典问题:汉诺塔游戏_游戏_03


手把手带你解析蓝桥云课《算法很美》--2.6递归经典问题:汉诺塔游戏_算法_04


手把手带你解析蓝桥云课《算法很美》--2.6递归经典问题:汉诺塔游戏_算法_05

代码:

public class 汉诺塔游戏 {

public static void main(String[] args) {
// TODO Auto-generated method stub
printHanoTower(5,"A","B","C");
}

static void printHanoTower(int N,String from,String to,String help) {
if(N==1) {
System.out.println("move "+N+" from "+from+" to "+to);
return;
}
printHanoTower(N-1,from,help,to);//先把前N-1个盘子挪到辅助空间上去
System.out.println("move "+N+" form "+from+" to "+to);//N可以顺利到达
printHanoTower(N-1,help,to,from);//让N-1从辅助空间回到源空间上去
}

}


举报

相关推荐

递归--汉诺塔问题

0 条评论