|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
022函数:递归是神马
递归:在函数内部调用其他可见函数
口诀:递归递归,归去来兮,出来混总是要还的!
0. 表现形式:
1. 满足的基本条件:函数调用自身,设置正确的返回条件
2. 有没有必须使用递归的地方?
汉诺塔,目录索引,快速排序,树结构的定义。
3. 递归有危险性:非常消耗时间和内存,千万不能忘记返回
4. 优缺点:优点是证明逻辑能力。缺点是格式要求高,耗内存。
5. 不会拍
动动手代码:
1. func_oujilide.py
- def gcd(x, y):
- if y:
- return gcd(y, x%y)
- else:
- return x
-
- print(gcd(15, 10))
复制代码
2. func_power.py
- def power(x, y):
- if y == 1:
- return x # 乘最后一次
- else: # 若y > 1
- return x * power(x, y-1) # 递归
- # a = int(input("请输入一个整数:")
- # b = int(input("请再输入一个整数:")
- a = 5
- b = 4
- result = power(a, b)
- print("%d的%d次幂的值为%d" % (a, b, result))
复制代码
3. jiecheng.py
- # 递归实现阶乘factorial
- # 非递归版本
- def factorial1(x):
- temp = x
- for i in range(1, x):
- temp *= i
- return temp
- num = int(input('Please give a number:'))
- result = factorial1(num)
- print("%d的阶乘是:%d" % (num, result))
-
- # 递归版本(有进去就有回来)
- def factorial2(n):
- if n == 1:
- return 1
- else:
- return n * factorial2(n-1) # 调用
- num1 = int(input('Please give a number:'))
- result1 = factorial2(num1)
- print("%d的阶乘是:%d" % (num1, result1))
复制代码
|
评分
-
查看全部评分
|