标签:
一个函数在它的函数体内调用它自身称为递归调用,这种函数称为递归函数。执行递归函数将反复调用其自身,每调用一次就进入新的一层。
- long factorial(int n){
- long result;
- if(n==0 || n==1){
- result = 1;
- }else{
- result = factorial(n-1) * n; // 递归调用
- }
- return result;
- }
result
= factorial(n-1) * n;
,即result
= factorial(5-1) * 5;
,接下来也就是调用factorial(4)
。这是第一次递归。注意:为了防止递归调用无终止地进行,必须在函数内有终止递归调用的手段。常用的办法是加条件判断,满足某种条件后就不再作递归调用,然后逐层返回。递归调用不但难于理解,而且开销很大,如非必要,不推荐使用递归。很多递归调用可以用迭代(循环)来代替。
- long factorial(int n){
- int i;
- long result=1;
- if(n==0 || n==1){
- return 1;
- }
- for(i=1; i<=n; i++){
- result *= i;
- }
- return result;
- }
标签:
原文地址:http://blog.csdn.net/shuimanting520/article/details/51360134