一、概念
函数体内调用本函数自身,直到符合某一条件不可继续调用。
二、应满足的条件
(1).有反复执行的过程(调用自身)。
(2).有跳出反复执行过程的条件(函数出口)。
三、注意事项
1.递归中必须要存在一个循环结束的条件。
2.递归函数的每次调用都需要栈来存储,如果次数太多的话容易造成栈溢出。
class Program
{
/// <summary>
/// 每过一个村庄丢失之前的一般还多一只,7个村后还剩下2只
/// </summary>
/// <param name="cun"></param>
/// <returns></returns>
public int yangshu(int cun)
{
int sum = 0;
if (cun==7)
{
sum = 2;
return sum;
}
sum = (yangshu(cun + 1) + 1) * 2;//5天为例:sum=(yangshu(cun+1)+1)*2→sum=(yangshu(5+1)+1)*2→sum=((yangshu(6+1)+1)*2+1)*2
return sum;//yangshu(5+1)=(yangshu(6+1)+1)*2
}
static void Main(string[] args)
{
int sum = new Program().yangshu(0);
Console.WriteLine(sum);
Console.ReadLine();
}
}