假设柱子标为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;
}

执行结果:

最新文章

  1. CentOS7 修改防火墙,增加外网可以访问的端口号
  2. 查看apache、linux、kernel、nginx等版本
  3. php-redis扩展安装
  4. Winform下实现图片切换特效的方法
  5. jquery validation ajax 验证
  6. 【每日一linux命令8】添加新的工作组(groupadd)
  7. intent.setFlags方法中参数值的含义
  8. js操作符
  9. js生成随机数的方法实例总结 [收藏]
  10. php导出CSV时,超长数字精度丢失问题与前导0的字符串丢失0的问题解决
  11. 【 D3.js 入门系列 --- 8 】 对话操作(事件)
  12. linux-less
  13. php数组根据某一个键值,把相同键值的合并生成一个新的二维数组
  14. post 和 get 的区别,直指本质
  15. gets()的替代问题
  16. jieba 库
  17. Python学习笔记【第九篇】:Python面向对象基础
  18. 【html】前端实现筛选条件跳转
  19. 洛谷P1084 疫情控制 [noip2012] 贪心+树论+二分答案 (还有个小bugQAQ
  20. 入门dp总结

热门文章

  1. Python虚拟环境 之 virtualenv 与 virtualenvwrapper
  2. JS常用字符串处理方法应用总结
  3. python 一些函数和类用法记录
  4. 去BAT,你应该要看一看的面试经验总结
  5. luogu P2078 朋友
  6. 基于flask的网页聊天室(四)
  7. django的基本操作流程
  8. [luoguP2704] 炮兵阵地(状压DP)
  9. bzoj4027 [HEOI2015]兔子与樱花 树上贪心
  10. android去除标题栏和状态栏(全屏)