递归
递归是一个很常见的算法,其本质是自己调用自己,提起这个,你首先想到的是阶乘,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退出条件
有参数,也就是说你要有返回值,没有返回值就无所谓地柜不递归了,退出条件,当什么条件下你可以退出