怎么理解递归函数

可参考:http://blog.csdn.net/vagrxie/article/details/8470798

有如下函数,计算阶乘

function factorial(num){
  if(num<=1){
    return 1;
  }else{
    return num*factorial(num-1);
  }  
}

我们怎么判断这个阶乘的递归计算是否是正确的呢? 先别说测试, 我说我们读代码的时候怎么判断呢?回溯的思考方式是这么验证的, 比如当n = 4时, 那么factorial(4)等于4 * factorial(3), 而factorial(3)等于3 * factorial(2), factorial(2)等于2 * factorial(1), 等于2 * 1, 所以factorial(4)等于4 * 3 * 2 * 1. 这个结果正好等于阶乘4的迭代定义.

你可能感兴趣的:(怎么理解递归函数)