鱼C论坛

 找回密码
 立即注册
查看: 2149|回复: 1

[学习笔记] 函数-Ⅸ

[复制链接]
发表于 2023-3-12 17:24:34 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
>>> # 递归就是就是函数调用自身的过程
>>> def func(i):
...         if i >0:
...                 print(" I love you ")
...                 i -= 1
...                 func(i)
...
>>> func(3)
I love you
I love you
I love you
>>> func(2)
I love you
I love you
>>> # 要让递归正常工作,必须要有一个结束条件,并且每次调用都将向着这个结束条件推进。

>>> >>>
>>> def factIter(n):
...         result = n
...         for i in range(1, n):
...                 result *= i
...         return result
...
>>> factIter(2)
2
>>> factIter(3)
6
>>> factIter(5)
120
>>> def factRecur(n):
...         if n == 1:
...                 return 1
...         else:
...                 return n * factRecur(n - 1)
...
>>> factRecur(3)
6
>>> factRecur(35)
10333147966386144929666651337523200000000
>>> factRecur(5)
120

>>> # 使用递归求斐波那契数列
>>> # 斐波那契数列由 0 和 1 开始,之后的斐波那契数就是由之前的两数相加而得出。
>>> # 1、 1、 2、 3、 5、 8、 13、 21、 34、 55、 89、 144、 233、 377、 610、 987……
>>> def fibIter(n):
...         a = 1
...         b = 1
...         c = 1
...         while n > 2:
...                 c = a + b
...                 a = b
...                 b = c
...                 n -= 1
...                 return c
...
>>> fibIter(12)
2
>>> def fibIter(n):
...         a = 1
...         b = 1
...         c = 1
...         while n > 2:
...                 c = a + b
...                 a = b
...                 b = c
...                 n -= 1
...         return c
...
>>> fibIter(12)
144
>>> # 如果使用递归来实现,代码就是这样的:
>>> def fibRecur(n):
...         if n == 1 or n == 2:
...                 return 1
...         else:
...                 return fibRecur(n - 1) + fibRecur(n - 2)
...
>>> fibRecur(12)
144
>>>
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-3-31 16:51:47 | 显示全部楼层
干货
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-24 00:42

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表