一、阶乘
def fact(n):
if n == 0:
return 1
else:
return n*fact(n-1)
交互模式下调用 fact(5)
输出结果 120
或者直接在前面的代码块末尾加一行
print(fact(5))
二、字符串反转
1、
def rvs(s):
if s == "":
return s
else:
return rvs(s[1:])+s[0]
print(rvs("123456"))
654321
2、
s="123456"
print(s[::-1])
654321
3、
s="123456"
print(s[::-2])
642
4、
s="123456"
print(s[::-3])
63
三、斐波那契数列
def f(n):
if n == 1 or n == 2:
return 1
else:
return f(n-1) + f(n-2)
print(f(4))
四、汉诺塔
count=0
def hanoi(n, src, dst, mid):
global count
if n==1:
print("{}:{}->{}". format(1, src, dst))
count += 1
else:
hanoi(n-1, src, mid, dst)
print("{}:{}->{}". format(n, src, dst))
count +=1
hanoi(n-1, mid, dst, src)
hanoi(3, "A", "C", "B")
print(count)
1:A->C
2:A->B
1:C->B
3:A->C
1:B->A
2:B->C
1:A->C
7
【MOOC嵩天Python语言程序设计】5.3 代码复用与函数递归
最新推荐文章于 2023-01-02 17:15:39 发布
本文深入探讨了编程中常见的几种算法,包括阶乘计算、字符串反转、斐波那契数列生成及汉诺塔问题解决。通过具体的Python代码实现,帮助读者理解这些算法的工作原理及其应用场景。
1401

被折叠的 条评论
为什么被折叠?



