一个方法,自己调用自己,用上一次调用得出的结果作为这次的参数。
函数被调用还未结束时再调用函数,则会保存当前状态,入栈,一次类推。当最后一个函数执行完后,倒数第二个函数出站,再与倒数第一个函数的结果进行计算,一次类推。
递归其实就是一个栈,比如求5的阶乘:要知道5的阶乘,就需要知道4的阶乘,要知道4的阶乘,又要知道3的阶乘,一次类推。所以递归就先把5的阶乘表示入栈,在把4的入栈,直到最后一个,之后呢在从1开始出栈。
f(n) {
if(n == 0 || n == 1) {
return 1
} else {
return n*f(n-1)
}
}











网友评论