A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 胡元江 中级黑马   /  2013-2-16 19:57  /  1259 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

递归

    一个算法调用自己来完成它的部分工作,在解决某些问题时,一个算法需要调用自

身。如果一个算法直接调用自己或间接地调用自己,就称这个算法是递归(Recursive).
   根据调用方式不同,它分为直接递归(Direct Recursion)和间接递归Indirect

Recursion)

     比如,在收看电视节目时,如果演播室中也有一台电视机播放的是与当前相同的

节目,观众就会发现屏幕里的电视套有一层层的电视画面。这种现象类似于直接递归。
     如果把二面镜子面对面的摆放,便可从任意一面镜子里看到两面镜子无数个影像

,这类似于间接递归。

   一个递归算法必须有二个部分:初始部分(Base Case)和递归部分(Recursion

Case)初始部分只处理可以直接解决而不需要再次递归调用的简单输入。递归部分包含

对算法一的次或多次递归调用,每一次的调用参数都在某种程序鸡皮疙瘩比原始调用更

接近初始情况。
    函数的递归调用可以理解为:通过一系列的自身调用,达到某一终止条件后,再按

照调用路线逐步返回,递归是程序设计中强有力的工具,有很多数学函数是以递归来定

义的(求阶乘函数  n!)

    C#中实现


static void Main()
    {
        Console.WriteLine("请输入一个数字");
        int  a =int.Parse( Console.ReadLine());
        Console.WriteLine (factorial(a));
        Console.ReadKey();
        



    }
     public static long   factorial(int a ){

         if (a <= 1)
         {
             return 1;
         }
         else
         {
             return a * factorial(a - 1);

         }
         
     }
     

1 个回复

正序浏览
值得学习ing!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马