Python之遞歸

一、遞歸的定義:函數自身調用自身

示例:(死循環,僅示範使用)

def test(n):
	print(n)
	test(n)


test(10)

正常遞歸:

def test(n):
	print(n)
	if int(n / 2) == 0:
		return n
	res = test(int(n / 2))
	return res


test(10)

遞歸問路:

def ask_way(persionlist):
	print("-" * 60)
	if len(persionlist) == 0:
		return "沒人知道"
	persion = persionlist.pop(0)
	if persion == "dou5":
		print("謝天謝地你終於問對人了")
		return "%s 說:你順着路往前走,走到頭再往右" % persion
	print("hi 帥哥%s,where is the way?" % persion)
	print("%s回答道:我不知道,你等着,俺給你問問%s......" % (persion, persionlist))
	time.sleep(3)
	res = ask_way(persionlist)
	return res


ask_way(persion_list)

二、遞歸的特性

1、必須有一個明確的結束條件

2、每次進入更深一層遞歸時,問題規模相比上一次遞歸都應有所減少

3、遞歸的效率不高,遞歸層次過多會導致棧溢出

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章