一、階乘
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 代碼複用與函數遞歸
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.