汉诺塔
来源:互联网 发布:d3.js demo 编辑:程序博客网 时间:2024/05/21 20:28
package com.someusefuldesign.demo;/*假设有A B C三个柱子移动的顺序为: * */public class Hanoi { static int count = 0; public void hanoi(int n,String from,String depend,String to ){ //这里的n是指每个柱子上盘子的编号,从上到下为1-n if(n == 1){ move(from,to); }else{ /**先把初始柱子的前n-1个盘子借助目标柱子移动到辅助柱子上**/ hanoi(n-1,from,to,depend);//把初始柱子上n-1个放到辅助柱子上 /**然后把初始柱子上最后一个最大的盘,放到目标柱子上*/ move(from,to);//这里只是打印出来信息 /**然后借助初始柱子(把初始柱子当成辅助柱子),把之前辅助柱子上的n-1个盘,放到目标柱子上*/ hanoi(n-1,depend,from,to); //再把辅助上的放到目标柱子上 /**由于是递归,反复调用,知道n=1,到递归出口*/ } } public void move(String from,String to){ System.out.println("from " + from + " to " + to); count++; } public static void main(String[] args) { /**定义ABC三个柱子,A为初始柱子,B为辅助柱子,C为目标柱子*/ Hanoi hanoi=new Hanoi(); hanoi.hanoi(3, "A", "B", "C"); System.out.println("一共移动了"+count+"步"); } }
0 0
- 汉诺塔
- 汉诺塔
- 汉诺塔
- 汉诺塔
- 汉诺塔
- 汉诺塔
- 汉诺塔
- 汉诺塔
- 汉诺塔
- 汉诺塔
- 汉诺塔
- 汉诺塔
- 汉诺塔
- 汉诺塔
- 汉诺塔
- 汉诺塔
- 汉诺塔
- 汉诺塔
- iOS 图形编程总结
- InputFormat的数据划分、Split调度、数据读取三个问题的浅析
- easyui 获得属性值
- 第五届蓝桥杯软件类省赛真题 Java本科A 斐波那契
- LeetCode Binary Tree Level Order Traversal II
- 汉诺塔
- SCI论文通讯作者需具备的条件
- Higher 'direct path read' Waits in 11g when Compared to 10g (Doc ID 793845.1)
- ios7适配一些问题
- 指针的数组
- hadoop实验:求气象数据的最低温度
- apache架构部分
- 键盘布局的改进之道
- 用栈实现火车进站问题