基于C语言用递归算法实现汉诺塔解法的计算
2020-04-05 12:16
513 查看
基于C语言用递归算法实现汉诺塔解法的计算
如有不懂欢迎提问
#include<stdio.h> int steps = 0; //三根柱A(用0表示),B(用1表示),C(用2表示),起始A,目标C void print(int num, int get, int put) { steps++; printf("move disk%3d from %c to %c\n", num, get == 0 ? 'A' : get == 1 ? 'B' : 'C', put == 0 ? 'A' : put == 1 ? 'B' : 'C'); } void mv(int num,int a,int b,int c) { if (num == 1) print(1, a, c); else { mv(num - 1, a, c, b); print(num, a, c); mv(num - 1, b, a, c); } } int main() { int n; printf("Input the number of disks:"); scanf("%d", &n); printf("The setps to moving %3d disks:\n",n); mv(n, 0, 1, 2); printf("Complelt in %d steps!\n",steps); return 0; }
交流讨论等具体内容请访问我的博客
原文地址:https://boyinthesun.cn/post/c-hanoi/
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- 基于C语言用递归算法实现马踏棋盘解法的计算
- Python基于递归算法实现的汉诺塔与Fibonacci数列示例
- java基于递归算法实现汉诺塔问题实例
- 汉诺塔解法C语言实现
- 汉诺塔循环解法启蒙---C语言实现
- 基于C语言和递归思想实现汉诺塔
- c语言基于堆栈实现回溯法自动走迷宫
- 数据结构基础(6)--递归和函数调用--汉诺塔问题C语言实现
- 基于ARP的局域网IP劫持——C语言实现
- 【经典问题】汉诺塔(递归、C语言实现)
- 基于C语言:长跳转的实现
- 基于C语言实现的N皇后问题
- C语言实现扑克牌计算24点
- 基于GTK+3 开发远程控制管理软件(C语言实现)系列二 Centos7下开发环境搭建
- C语言递归算法系列_汉诺塔(6)
- CSP考试 2015年9月第2题 日期计算 C语言实现
- 【数据结构与算法】汉诺塔算法——C语言递归实现
- 【java规则引擎】一个基于drools规则引擎实现的数学计算例子
- C语言基于GTK+Libvlc实现的简易视频播放器(二)
- 操作系统计算FIFO,LRU,OPT,LFU,NUR缺页率,C语言实现