递归

递归是一个很常见的算法,其本质是自己调用自己,提起这个,你首先想到的是阶乘,1!  2!或者n!,咱们不说这个,阶乘太普遍,无趣,说点有意思的

1 最大公约数

  static void Main(string[] args)
        {
            Console.Write(min(100,250));
            Console.ReadLine();
        }

        private static int min(int m, int n)
        {
            if (n == 0)
            {
                return m;
            }
            else
            {
                return min(n, m % n);
            }
        }
    }

这也是一个递归,当除没有余数时,表示这个数就是他们之间共有的数字,当然,最大公倍数就是m*n/最大公约数
2 螺旋数(这个算法之前我写过,所以就不罗嗦了)

 

3 景深效果

一个ubuntu的界面,这是看到一个老外的图片,http://en.wikipedia.org/wiki/Recursion,这是他的想法,很强大

4 树
不管是2叉树还是C#的递归树,递归动态添加无疑是最好的一种方式

 

总结一下,递归有些条件,
1参数

2退出条件
有参数,也就是说你要有返回值,没有返回值就无所谓地柜不递归了,退出条件,当什么条件下你可以退出

posted @ 2012-07-27 15:54  爱喝可乐  阅读(221)  评论(0编辑  收藏  举报