可参考: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的迭代定义.