递归问题解决汉诺塔(C)
来源:互联网 发布:网络攻防大赛平台 编辑:程序博客网 时间:2024/06/11 12:33
#include<stdio.h>void hanoii(char A,char B,char C,int n);void main(){int a;printf("please input the number of the hanoi:\n");scanf("%d", &a);hanoi('A','B','C',a);}void hanoii(char A,char B,char C,int n){ if(n == 1){printf("from %c to %c\n",A,C);}else{hanoi(A,C,B,n-1);printf("from %c to %c\n",A,C);hanoii(B,A,C,n-1);} }首先让我们来看一看 c语言的实现方法
我们可以把所有情况都看做一种情况 即看作两层汉诺塔。
首先我们来定义一个汉诺塔函数来处理汉诺塔 ,内部的形参为char A, char B, char C 分别代表三个柱子 int n 代表层数。
一、当塔只有一层的时候 我们便可以直接把盘子 从A移动到目标盘C 对应代码 if(n == 1) printf("from %c to %c\n",A,C);
二、否则都可以看作是两层塔
把函数名看作搬运工
则第一句表示 把第N-1座塔 <span style="white-space:pre"></span>A->B
第二句表示 把第N座塔 A->C
最后一句 把第N-1座塔 <span style="white-space:pre"></span>B->C
0 0
- 递归问题解决汉诺塔(C)
- c递归实现 汉诺塔
- 【C语言】递归 - 汉诺塔
- 汉诺塔递归的c语言实现(递归)
- 递归 字符串翻转 问题解决
- 汉诺塔递归实现[C代码]
- C语言汉诺塔--递归算法
- C++_递归实现汉诺塔
- C递归解简单汉诺塔
- C 递归
- 【c++】递归
- C 递归
- 递归问题解决二叉树问题
- Android 递归栈溢出问题解决
- 经典递归应用--汉诺塔(C语言版)
- 汉诺塔C递归算法详细解答
- 算法思考--------汉诺塔c语言实现-------递归
- C/C++ 使用递归算法实现汉诺塔
- 黑马程序员——C语言-1:基础知识
- ubuntu 终端 下载/安装/更新 软件的命令
- UVA - 1608 Non-boring sequences 贪心+map + 往中间靠
- 静态路由和动态路由
- 关于ByteBuffer使用解释
- 递归问题解决汉诺塔(C)
- Web开发人员需知的Web缓存知识
- SQL Server 2008的外围应用配置工具在哪里?
- UILabel 使用
- [leetcode]Validate Binary Search Tree (判断有效二叉搜索树 C语言实现)
- system.Data.SqlClient.SqlError:因为数据库正在使用,所以无法获得对数据库的独占访问权
- win7下,Ant 配合yuicompressor对js和css进行合并、压缩、拷贝处理
- [汇编]_[初级]_[VS2010搭建汇编开发环境win32和x64]
- 黑马程序员——C语言-2:内存剖析