递归调用理解(C#)
来源:互联网 发布:spss下载mac版 编辑:程序博客网 时间:2024/06/06 00:14
递归是一种编程技术,一个方法调用它本身;
比较经典的有:遍历迷宫,汉诺塔,N的阶乘,Fabonacci...
下面就举汉诺塔为例子介绍
C# Code:
class TowerofHanoi { private int totalDisks; public TowerofHanoi(int disk) { totalDisks = disk; } public void Solve() { MoveTower(totalDisks, 1, 3, 2); } private void MoveTower(int numDisks, int start, int end, int temp)//第一次进来,(start=1,end=3,temp=2) { if (numDisks == 1) //第二次进来(start=1,end=2,temp=3) MoveOneDisk(start, end); //第三次进来(start=1,end=3,temp=2) else //第四次进来(start=3,end=2,temp=1) { MoveTower(numDisks - 1, start, temp, end);//第一次调用本身:(1,2,3);第二次调用本身:(1,3,2);在初次要移动第二块的时候返回到这里(1,3,2), MoveOneDisk(start, end); //且从这个函数移动第二块,此时(start=1,end=2,temp=3) MoveTower(numDisks - 1, temp, end, start);//第三次调用本身:(3,2,1) } } private void MoveOneDisk(int start,int end) { Console.WriteLine ("Move one disk from:" +start +" to " + end ); } }class Program { static void Main(string[] args) { int n = int.Parse (Console.ReadLine()); TowerofHanoi towers = new TowerofHanoi(n); towers.Solve(); Console.ReadKey(); } }
- 递归调用理解(C#)
- 递归调用的理解
- 递归调用的理解
- C语言的递归调用(33)
- 对于递归调用的理解
- 自学C之递归理解
- c语言之递归调用
- C函数的调用-----递归调用
- C语言学习总结(1)-递归函数的理解
- 函数递归调用(c语言为例)
- 深入理解递归函数的调用过程
- 深入理解递归函数的调用过程
- 深入理解递归函数的调用过程
- 21-函数的递归调用的理解
- java初学者对递归调用的理解
- 深入理解递归函数的调用过程
- 深入理解递归函数的调用过程
- 深入理解递归函数的调用过程
- JSP中上传文件包
- 添加lib库的方法
- [Charset]UTF-8, UTF-16, UTF-16LE, UTF-16BE的区别
- 将js文件打入jar包中,通过定义servlet把js当成文件发给浏览器
- LOG4J使用
- 递归调用理解(C#)
- java 通过jni调用tuxedo
- **awk内置函数小节**
- [我的Linux技术支持生涯] 同网段的某些ip无法ping通另一ip
- 在myeclipse中使用tomcat插件导出web工程war包
- 好工具Javarebel-----提高JavaEE开发效率
- web服务器搭建指南
- 使用apache commons-fileupload.jar 实现文件上传
- 如何成为“10倍效率”开发者