xml地图|网站地图|网站标签 [设为首页] [加入收藏]
40-Python之递归函数
分类:网络频道

本文实例讲述了Python递归函数定义与用法。分享给大家供大家参考,具体如下:

在函数内部,可以调用其他函数。如果一个函数在内部调用自身本身,这个函数就是递归函数。

递归函数

举个例子,我们来计算阶乘n! = 1 * 2 * 3 * ... * n,用函数fact(n)表示,可以看出:

在函数内部,可以调用其他函数。如果一个函数在内部调用自身本身,这个函数就是递归函数。

fact(n) = n! = 1 * 2 * 3 * ... * (n-1) * n = (n-1)! * n = fact(n-1) * n

举个例子,我们来计算阶乘 n! = 1 * 2 * 3 *宝马娱乐在线网址, ... * n,用函数 fact(n)表示,可以看出:

所以,fact(n)可以表示为n * fact(n-1),只有n=1时需要特殊处理。

fact(n) = n! = 1 * 2 * 3 * ... * (n-1) * n = (n-1)! * n = fact(n-1) * n

于是,fact(n)用递归的方式写出来就是:

所以,fact(n)可以表示为 n * fact(n-1),只有n=1时需要特殊处理。
于是,fact(n)用递归的方式写出来就是:

def fact(n):

 

if n==1:

 代码如下

return 1

deffact(n):

return n * fact(n - 1)

ifn==1:

上面就是一个递归函数。可以试试:

  return1

>>> fact(1)

returnn*fact(n-1)

1

 

>>> fact(5)

上面就是一个递归函数。可以试试:

120

 

>>> fact(100)

 代码如下

93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000L

>>> fact(1)

如果我们计算fact(5),可以根据函数定义看到计算过程如下:

1

===> fact(5)

>>> fact(5)

===> 5 * fact(4)

120

===> 5 * (4 * fact(3))

>>> fact(100)

===> 5 * (4 * (3 * fact(2)))

93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000L

===> 5 * (4 * (3 * (2 * fact(1))))

 

===> 5 * (4 * (3 * (2 * 1)))

如果我们计算fact(5),可以根据函数定义看到计算过程如下:

===> 5 * (4 * (3 * 2))

 

===> 5 * (4 * 6)

本文由宝马娱乐在线发布于网络频道,转载请注明出处:40-Python之递归函数

上一篇:常用PHP封装分页工具类介绍 下一篇:读取团购网站的api的php程序宝马娱乐在线
猜你喜欢
热门排行
精彩图文