C#递归实例介绍

原创 2013年12月03日 12:16:37


 

1. 阶乘


阶乘(!)是小于某个数的所有正整数的乘积。
0! = 1
1! = 1
2! = 2 * 1! = 2
3! = 3 * 2! = 6
...
n! = n * (n - 1)!

 

递归算法

 

public long Factorial(int n) 
{ 
if (n == 0)//限制条件,对该方法调用自己做了限制 
return 1; 
return n * Factorial(n - 1); 
}

 

Fibonacci数列


Fibonacci数列是按以下顺序排列的数字:
0,1,1,2,3,5,8,13,21,34,55,…如果F0 = 0 并且 F1= 1 那么Fn = Fn-1 + Fn-2

 

递归算法

public long Fib(int n) 
{ 
if (n == 0 || n == 1) //满足条件 
return n; 
return Fib(k - 2) + Fib(k - 1); 
} 


 

汉诺塔问题

 

        
        static void Main(string[] args)
        {
            Hanoi(5, 'A', 'B', 'C');
            Console.ReadLine();
        }
        public static void Hanoi(int n ,char A, char B, char C)
        {
            //汉诺塔问题
            //将n个盘子从A座借助B座,移到C座
            if (n == 1) Move(A, C);
            else
            {
                Hanoi(n - 1, A, C, B);
                Move(A, C);
                Hanoi(n - 1, B, A, C);
            }

        }
        public static void Move(char startPlace, char endPlace)
        {
            Console.WriteLine("Move {0} To {1}",startPlace,endPlace);
        }


 

查找文件

 

   
public ArrayList al=new ArrayList();   //我把ArrayList当成动态数组用,非常好用
public void GetAllDirList(string strBaseDir)
{
   DirectoryInfo di=new DirectoryInfo(strBaseDir);
   DirectoryInfo[] diA=di.GetDirectories();
   for(int i=0;i<diA.Length;i++)
   {
    al.Add(diA[i].FullName);   //diA[i].FullName是某个子目录的绝对地址,把它记录在ArrayList中
    GetAllDirList(diA[i].FullName);   //注意:这里使用C#递归的方法   
   }
}  


 

 

参考资料:     C#递归的应用      http://www.studyofnet.com/news/241.html

 

ASP.NET使用递归算法实现画树程序

实现效果如下:(随机生成) using System; using System.Collections.Generic; using System.ComponentModel; usin...
  • sheng1522098487
  • sheng1522098487
  • 2017年04月20日 16:25
  • 358

C# 递归算法

C# 递归算法 什么是递归函数/方法? 任何一个方法既可以调用其他方法也可以调用自己,而当这个方法调用自己时,我们就叫它递归函数或递归方法。 通常递归有两个特点: 递归方法一直会调用自己直...
  • mooninshoe
  • mooninshoe
  • 2017年01月24日 15:10
  • 1952

【树形递归】

C#树形递归,部门树状图 如果数据库中存在的department部门表,其中ID为主键,PID为父类,Name为部门名称,设计如下: public class department {...
  • heyangyi_19940703
  • heyangyi_19940703
  • 2016年05月20日 16:25
  • 2093

VB.net遍历路径下的所有文件及所有子文件夹---递归算法

近段时间,由于项目的需要,做了个小工具
  • ecjtuAndy
  • ecjtuAndy
  • 2014年08月23日 23:36
  • 5657

C# 递归算法!

          今天无所事事,于是重温了一下递归算法。突然之间发现递归算法很好用。           首先碰到的是这样的一首题目:计算数组{1,1,2,3,5,8.......} 第30位值,不...
  • inkstone2006
  • inkstone2006
  • 2008年01月22日 01:46
  • 28471

C#算法之递归

递归就是方法里面用方法 例: 再在main方法里面调用即可: Class1 c = new Class1(); Console.WriteLine(c.fun(4)); ...
  • rain2020
  • rain2020
  • 2017年03月12日 08:45
  • 792

C#实现数据库的递归查询

表结构如下: 标识号  名称     上级标识号 mid      mname        mparentid 1        菜单一      0 2        菜单二      1...
  • killcwd
  • killcwd
  • 2015年12月27日 12:59
  • 1092

C#数据库递归构造treeview树形结构

1、首先数据库: f_id 项目ID号 ,f_front 父ID号 ,f_name名称,f_type类型,f_layer所处层,f_order 同层的顺序号;(f_layer,f_order不要也可,...
  • rubychen410
  • rubychen410
  • 2009年06月19日 10:44
  • 6015

C#递归遍历树节点并且存储

前面介绍了TreeView控件生成树,TreeView控件在C#开发中用处很广泛,这里就把我再实际使用的过程中用到的方法总结一下。 1.点击TreeView某一节点,将该节点所有子节点遍历存储。 比如...
  • pengshupan
  • pengshupan
  • 2016年03月02日 10:40
  • 2681

CSharp一些小应用算法(包括排序、递归等)

  • 2009年03月06日 17:35
  • 6KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C#递归实例介绍
举报原因:
原因补充:

(最多只允许输入30个字)