汉诺塔
来源:互联网 发布:java static方法 编辑:程序博客网 时间:2024/06/05 19:14
#include <stdio.h>int steps; // 统计步数 /* @function: 输出盘子移动的方向 @param: x-->盘子原来的位置 y-->盘子移到的位置 @return: void*/void move(char x, char y){ // 步数自增一并输出步数和移动方向 printf("第 %d 步 : %c =========> %c\n", ++steps, x, y);}/* @function: n个盘子在b柱子的帮助下从a柱子移动到c柱子(假设它能做到) @param: a-->第一个柱子 b-->第二个柱子 c-->第三个柱子 n-->盘子的个数 @return: void*/void hanoiTowers(char a, char b, char c, int n){ // 只剩下一个盘子, 直接从a柱子移动到c柱子, 并返回, 不再递归 if (n == 1) { move(a, c); return; } // 将n-1个盘子从a柱子借助c柱子移动到b柱子, a柱子剩下一个盘子 hanoiTowers(a, c, b, n - 1); // a柱子剩下一个盘子, 直接从a柱子移到c柱子 move(a, c); // 将移到b柱子的n-1个盘子借助a柱子移动到c柱子 hanoiTowers(b, a, c, n - 1);}int main(){ int n; // 盘子个数 while (scanf("%d", &n) == 1) // 输入盘子个数 { steps = 0; // 初始化步数为0 hanoiTowers('A', 'B', 'C', n); // 开始移动 } return 0;}
0 0
- 汉诺塔
- 汉诺塔
- 汉诺塔
- 汉诺塔
- 汉诺塔
- 汉诺塔
- 汉诺塔
- 汉诺塔
- 汉诺塔
- 汉诺塔
- 汉诺塔
- 汉诺塔
- 汉诺塔
- 汉诺塔
- 汉诺塔
- 汉诺塔
- 汉诺塔
- 汉诺塔
- Problem C: [noip2016十连测第五场]travel (贪心)
- 利用crontab定时启动任务
- Symfony环境搭建
- 通过实例理解AOP
- AndroidStudio上遇到的一些问题(2)
- 汉诺塔
- 关于x++和++x
- android开发6.0权限适配
- [Python]默认函数参数注意点
- AbstractSecurityWebApplicationInitializer
- CentOS 6.x 升级Python2.6.x到Python2.7.x
- 欢迎使用CSDN-markdown编辑器
- 使用JSPatch实现iOS APP动态更新
- iOS开发中常见得运行报错