日期:2014-05-18  浏览次数:20405 次

高手们,帮解释解释递归吧,最好带个简单的小例子,无意间想起的谢谢各位了
高手们,帮解释解释递归吧,最好带个简单的小例子,无意间想起的谢谢各位了

------解决方案--------------------
计算N的阶乘
public int results(int n)
{
if(n==0||n==1)
return 1;
else
return n*results(n-1); //递归调用函数本身
}


------解决方案--------------------
给你个阶乘的例子
递归说通俗点就是自己调用自己玩
private int factorial(int num)
{
if (num < 0)
{
throw new Exception( "不能为小于0的整数! ");
}
if (num == 0)
{
return 1;
}
return num*factorial(num - 1);
}

int i = this.factorial(3);

------解决方案--------------------
public int results(int n)
{
if(n==0||n==1)
return 1;
else
return n*results(n-1); //递归调用函数本身
}
借用上面的例子实现阶乘。函数调用自己本身如:n*results(n-1),而results(n-1)又会调用(n-1)*results(n-2),.........直到n=1是执行1×1.然后在反推回去得到结果。
其实递归就是一层一层的拨,然后在包回去的过程。效率并不高的。