Day15零基礎入門python第022講課後測試題及答案:遞歸是神馬

測試題:
0.遞歸在編程上的形式是如何表現的呢?

自己調用自己

1.遞歸必須滿足哪兩個條件?

調用函數自身

設置了正確的返回值

2.思考一下,按照遞歸的特性,在編程中有沒有不得不使用遞歸的情況?

:例如漢諾塔,目錄索引(因爲你永遠不知道這個目錄裏面是否還有目錄),快速排序(二十世紀十大算法之一),樹結構的定義等如果使用遞歸,會事半功倍,否則會導致程序無法實現或相當難以理解。

3.用遞歸去計算階乘問題或菲波那切數列是很糟糕的算法,你知道爲什麼嗎?

普通程序員用迭代,天才程序員用遞歸,不要簡單覺得遞歸好用,而是使用遞歸需要格外小心,設置正確的返回條件,因爲遞歸的實現是函數調用本身,每次函數的調用都需要進行壓棧、出棧、保存和回覆寄存器的棧操作,所以在這上邊是非常消耗時間和空間的。

4.請聊一聊遞歸的優缺點?

優點:複雜的問題簡單化,使得邏輯便於理解,程序算法簡單
缺點:會佔用更多的資源,使用不當還會造成程序死機

5.拿手機拍一張“遞歸自拍照片”

動動手:
0.使用遞歸編寫一個power()函數模擬內建函數pow(),即power(x,y)爲計算並返回x的y次冪的值

1.使用遞歸編寫一個函數,利用歐幾里得算法求最大公約數,例如gcd(x,y)返回值爲參數x和參數y的最大公約數。

參考:

https://blog.csdn.net/qq_41556318/article/details/84162919

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