函数的递归
函数的递归
是什么?
在一个函数中,当函数内部含有调用自身函数的语句,则表示该函数采用递归方法,例如下所示:
def f1(a,b): f1(c,d) ....... ....... return 0
解法?
思路:①找重复
②找变化:这里可能需要构造变量。
③找边界:是哪个变化的变量,并根据变量变化的规律来得到边界
例如:求n的阶层
①找重复(子问题):则为n*(n-1)的阶层,化为求解(n-1)的阶层。求解(n-1)的阶层比求n的阶层问题规模要小,以此类推,这个为子问题。
②找变化:这里是n在变小。
③找边界:当n=1是结束的标志。
若要使用递归来解决问题,则可以按照此步骤进行解题,这样就更加容易解题。
递归的运用具有一下几种思维
①切蛋糕的思维(就是先切一刀,再将其他看成子问题)
②若切一刀没有用,就看是否有递推的公式。例如斐波那数列,是一般的数学问题,可以分析出数学公式。