利用函数递归调用实现汉诺塔
来源:互联网 发布:玻璃扯旗鱼淘宝 编辑:程序博客网 时间:2024/06/05 19:30
/*
*wuxiuwen
*利用函数递归调用实现汉诺塔
*/
#include<stdio.h>
int count; //打印的行数,同时可以看进行了多少次的操作
int hanio(int i,char from,char tmp,char to); //汉诺塔的函数,利用函数递归调用
int move(char,char); //操作
int input(void); //输入操作
int main()
{
hanio(input(),'A','B','C');
return 0;
}
int input()
{
int num=0;
printf("please input a number: \n");
scanf("%d",&num);
printf("the action is :\n");
return num;
}
int move(char from,char to)
{
count++;
printf("%d : move %c to %c\n",count,from,to);
return 0;
}
int hanio(int i,char from,char tmp,char to)
{
if(1==i)
{
move(from,to);
}
else
{
hanio(i-1,from,to,tmp);
move(from,tmp);
hanio(i-1,tmp,from,to);
}
return 0;
}
//*******************************************//
利用函数递归调用实现汉诺塔,该函数从外层进行深入函数中,进行一层层调用,然后一层层返回。
编译,执行,输入4,结果如下:
[root@localhost wuxiuwen]# ./a.out
please input a number:
4
the action is :
1 : move A to B
2 : move A to B
3 : move B to C
4 : move A to C
5 : move C to A
6 : move C to A
7 : move A to B
8 : move A to B
9 : move B to C
10 : move B to C
11 : move C to A
12 : move B to A
13 : move A to B
14 : move A to B
15 : move B to C
[root@localhost wuxiuwen]#
********************************end ************************
- 利用函数递归调用实现汉诺塔
- 利用游标实现递归(函数)
- 利用函数递归实现无限分类
- C语言实现:函数的递归调用
- js匿名函数实现递归调用
- 学习到栈的时候,利用函数递归调用解决汉诺塔
- Oracle之利用函数索引减少递归调用
- 递归调用(实现汉诺塔)
- 递归函数调用递归函数
- 利用递归调用实现十进制转化成任意进制
- 利用数组实现批量函数调用
- C语言-函数实现模块化设计-函数的递归调用
- Python利用递归函数移动汉诺塔
- 利用递归函数逆序一个栈(C语言实现)
- 汉诺塔、反向输出问题--利用递归实现
- java利用递归实现汉诺塔算法
- Python实现递归函数:汉诺塔
- 函数的递归调用
- Python 积沙成塔
- 简单工厂模式
- file 上传
- 关于“using namespace std
- 包的设计原则
- 利用函数递归调用实现汉诺塔
- 【Word画线条5大技巧】
- 设计模式---桥梁模式
- 人脸识别核心算法
- Android系统手机内存卡分区详解
- 国外ERP软件公司的一些数据(SAP,Oracle,Infor,Sage,Microsoft)
- 回到顶端代码
- 如何修改Java的Play框架默认的HTTP端口号
- DWR配置过程