汉诺塔 Tower of Hanoi
2024-08-30 16:48:16
假设柱子标为A,B。C。要由A搬至C,在仅仅有一个盘子时,就将它直接搬至C;当有两个盘子,就将B作为辅助柱。假设盘数超过2个。将第二个下面的盘子遮起来,就非常easy了。每次处理两个盘子,也就是:A->B、A->C、B->C这三个步骤,而被遮起来的部分,事实上就由方程的递归处理。
代码例如以下:
#include <stdio.h> void hanoi(int n,char A,char B,char C){
if(n == 1){
printf("Move sheet %d from %c to %c\n",n,A,C);
}
else{
hanoi(n-1,A,C,B);
printf("Move sheet %d from %c to %c\n",n,A,C);
hanoi(n-1,B,A,C);
}
} int main(){
int n;
printf("请输入盘数:");
scanf("%d",&n);
hanoi(n,'A','B','C');
return 0;
}
执行结果:
最新文章
- CentOS7 修改防火墙,增加外网可以访问的端口号
- 查看apache、linux、kernel、nginx等版本
- php-redis扩展安装
- Winform下实现图片切换特效的方法
- jquery validation ajax 验证
- 【每日一linux命令8】添加新的工作组(groupadd)
- intent.setFlags方法中参数值的含义
- js操作符
- js生成随机数的方法实例总结 [收藏]
- php导出CSV时,超长数字精度丢失问题与前导0的字符串丢失0的问题解决
- 【 D3.js 入门系列 --- 8 】 对话操作(事件)
- linux-less
- php数组根据某一个键值,把相同键值的合并生成一个新的二维数组
- post 和 get 的区别,直指本质
- gets()的替代问题
- jieba 库
- Python学习笔记【第九篇】:Python面向对象基础
- 【html】前端实现筛选条件跳转
- 洛谷P1084 疫情控制 [noip2012] 贪心+树论+二分答案 (还有个小bugQAQ
- 入门dp总结