Java实现汉诺塔 -- JAVA 算法学习
来源:互联网 发布:淘宝联盟怎么合并购买 编辑:程序博客网 时间:2024/05/24 11:13
呐 下图这个就是汉诺塔啦~小时候可是经常玩呢,大家都知道它的解决规则与步骤啦~那怎嚰用用代码来描绘一下呢~
分析:规则很简单,我们发现当只有一层时,我们直接可以把所有(一个)的小环移到目标柱子上,当大于2时,我们发现,我们必须先把上面的N-1层移到辅助的柱子(目标柱子以外的两个都是辅助柱子)上,才能把第N层的小环移到目标柱子,是不是发现啦~我们只需要写一个递归函数,每次把第N-1上的所有环移到辅助的柱子,这样就可以一层一层的把小环从大到小移到目标柱子了呢~~~
publicclassHanoiTest {
privatestaticintcount=0;
publicvoidhanoi(intn,charx,chary,charz){
if(n==1)
move(1,x,z);
else{
hanoi(n-1,x,z,y);
move(n,x,y);
hanoi(n-1,y,z,x);
}
}
publicvoidmove(intn,chara,charb){
count++;
System.out.println("第"+count+"步:"+"将"+n+"从"+a+"移到"+b);
}
publicstaticvoidmain(String[]args) {
System.out.println("请输入汉诺塔的高度:");
Scannerscanner=newScanner(System.in);
intn=scanner.nextInt();
/*int[] hanoi1 = newint[n],hanoi2 = newint[n],hanoi3 = newint[n];
for(inti=0;i<n;i++){
hanoi1[i]=i+1;
hanoi2[i]=0;
hanoi3[i]=0;
}*/
HanoiTesthanoiTest=newHanoiTest();
hanoiTest.hanoi(n,'x','y','z');
}
}
阅读全文
0 0
- Java实现汉诺塔 -- JAVA 算法学习
- [Java学习] A星算法Java实现
- java实现汉诺塔算法
- 常见算法学习及其Java实现--冒泡算法实现
- 算法导论学习笔记(Java实现)
- Java 实现快速排序算法-学习记录
- Apriori算法学习和java实现
- 算法学习之一java实现堆排序
- 算法学习之一java实现选择排序
- 算法学习之一java实现冒泡排序
- 算法学习之java实现快速排序
- 算法学习之java实现插入排序
- 算法学习之java实现希尔排序
- 算法学习之java实现归并排序
- 算法学习之java实现二分查找
- [算法学习]Java实现字符串全排列
- 学习JAVA中RSA算法实现
- Apriori算法学习和java实现
- 最大值减去最小值小于等于num的子数组数量
- 浮点数陷阱
- filter详解
- Rhino| Rhino详细介绍与实战
- maven 中的快照版本的讲解(SNAPSHOT)
- Java实现汉诺塔 -- JAVA 算法学习
- elasticsearch之Document APIs【Reindex API】
- su、sudo、sudo su、sudo -i的用法和区别
- 大数据Spark企业级实战版【学习笔记】----Tachyon& BlinkDB&Akka
- OpenSSL 与 SSL 数字证书概念贴
- nohup使程序在Linux下后台运行 (关掉终端继续让程序运行的方法)
- ORACLE查询
- 初遇乔伊
- 中小创势如破竹未来投资机会在哪