1.必须有一个明确的结束条件。
2.每次进入更深一层递归时,问题规模相比上次递归都应有所减少
3.递归效率不高,递归层次过多时会导致栈溢出
(在计算机中,函数调用是通过栈stack这种数据结构实现的,每当进入一个函数调用,
栈就会加一层栈帧,每当函数返回,站就会减一层栈帧,由于栈的大小不是无限的,所以,
递归调用的次数过多,会导致栈溢出。)
局部变量与全部变量
局部变量的作用域:
全部变量的作用域:
只有全局变量为字符串或数字时 在子程序中不会修改全局变量
当全局变量为其他复杂类型时,若在子程序中修改全部变量,则全局变量被全部修改。