程序调用自身的编程技巧称为递归( recursion)。递归做为一种算法在程序设计语言中广泛应用。 一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。递归的能力在于用有限的语句来定义对象的无限集合。一般来说,递归需要有边界条件、递归前进段和递归返回段。当边界条件不满足时,递归前进;当边界条件满足时,递归返回
递归的目的:
递归就是从小的往大了推理,这是缠的核心方法,反过来只是验证或结果。缠那样的天人不厌其烦的画分时图,实际就是在告诉大家,没有人能从大级别图上看出内 在机理,要知道表里关系,看清走势具体的演化,只能从小到大一步步来,如此,那个传说中的唯一分解才有可能呈现。所以,简单说,递归的目的就是将走势给完 全分类并找到其唯一解。按缠的说法,递归函数是由小到大的不同级别构成的,任何高级别的变动都是由低级别变动开始的,这种数量化和精确化的分解过程的唯一 性才是具体交易的先决条件。
递归的代码:
class Program
{
static void Main(string[] args)
{
Program p = new Program();
Console.WriteLine(p.tuzi(7));
}
public int tuzi(int n)
{
if (n == 1 || n == 2)
{
return 1;
}
else
{
return tuzi(n - 1) + tuzi(n - 2);
}
}
}
class Program
{
static void Main(string[] args)
{
Program p = new Program();
Console.WriteLine( p.age(5));
}
/// <summary>
/// 递归法求岁数
/// </summary>
/// <param name="n">有几个人</param>
/// <returns></returns>
int age(int n)
{
int c;
if(n==1)
return 10;
else
{
c = age(n-1)+2;
return c;
}
}