C# 递归算法

来源:互联网 发布:mac mysql怎么用 编辑:程序博客网 时间:2024/06/04 00:47

C# 递归算法

  • 什么是递归函数/方法?
    任何一个方法既可以调用其他方法也可以调用自己,而当这个方法调用自己时,我们就叫它递归函数或递归方法。
    通常递归有两个特点:
    1. 递归方法一直会调用自己直到某些条件被满足
    2. 递归方法会有一些参数,而它会把一些新的参数值传递给自己。
      那什么是递归函数?函数和方法没有本质区别,但函数仅在类的内部使用。以前C#中只有方法,从.NET 3.5开始才有了匿名函数。

阶乘(!)是小于某个数的所有正整数的乘积。
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; long value = 1; for (int i = n; i > 0; i--) { value *= i; } return value; } 

下面是用递归的方法实现计算阶乘,与之前的代码比起来它更简洁。
复制代码 代码如下:

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