递归 在函数内部,调用函数自身的编程技巧称为递归( recursion).递归函数结构清晰,很直观的理解计算过程,但也有严重缺点:相对于普通循环而言,递归运行效率较低,经过很多冗余的计算,递归会消耗大量的调用堆栈.在计算机中,函数调用是通过栈(stack)这种数据结构实现的,每当进入一个函数调用,栈就会加一层栈帧.每当函数返回,栈就会减一层栈帧.由于栈的大小不是无限的,递归调用的次数过多,会导致栈溢出.因此,应该尽量用循环代替递归. 举个阶乘的例子,用函数 ca(n) 表示阶乘,ca(n) =…