函式遞迴及面向過程程式設計

2022-02-26 18:09:13 字數 938 閱讀 5699

遞迴就是函式呼叫函式本身,然後有結束條件。

一般解決無法求解但不斷靠近的值,比如利用二分法找具體的數字,漢諾塔等

讓我們舉個栗子,比如要實現0-99的和,用while迴圈為:

num = 0

count = 0

while count<100:

print(count)

count += 1

num +=count

print(num)

接下來我們用遞迴函式對他進行乙個實現

count = 0

def f1():

global count #下面的count是全域性的count

if count >100:

return

count += 1

print(count)

f1()

f1()

以上就是乙個遞迴函式,他其實在不斷呼叫自身,同時他又乙個結束條件就是當count<100的時候,呼叫就結束,輸出count。

遞迴更多地是一種思想,他是用來解決某種問題

把規模大的、較難解決的問題變成規模較小的、易解決的同一問題。規模較小的問題又變成規模更小的問題,並且小到一定程度可以直接得出它的解,從而得到原來問題的解。

1、遞迴一定要有乙個明確的結束條件

2、每進入下一次遞迴,問題的規模都應該減少

3、遞迴效率不高,遞迴層次過多會變成死迴圈,導致棧溢位

面向對稱程式設計其實是一種機械式的思維方式。就是先幹什麼、後幹什麼、再幹什麼。

優點

​ 複雜的問題流程化,簡單化

缺點

功能與功能之間不獨立

牽一髮而動全身,不方便修改/擴充套件功能,可擴充套件性差

面向過程程式設計,函式式程式設計

面向過程程式設計,函式式程式設計 峰哥原創面向過程解釋 函式的引數傳入,是函式吃進去的食物,而函式return的返回值,是函式拉出來的結果,面向過程的思路就是,把程式的執行當做一串首尾相連的函式,乙個函式吃,拉出的東西給另外乙個函式吃,另外乙個函式吃了再繼續拉給下乙個函式吃。面向過程 機械式思維,流...

第八章 函式遞迴與面向過程程式設計

目錄遞迴就是函式呼叫函式本身,然後必須有結束條件,否則報錯達到最大深度 while和遞迴類似,區別在於遞迴有遞進和回歸,而while有來無回 遞迴更多地是思想,他是用來解決某種問題的,比如漢諾塔問題 雖然我到現在也沒搞懂 把規模大的較難解決的問題一步一步最小化問題,得到結果然後可以得到回歸到本身問題...

面向過程程式設計和匿名函式

演算法是一種高效解決問題的辦法 需求 有乙個按照從小到大順序排列的數字列表 需要從該數字列表中找到我們想要的那個乙個數字 如何做更高效?nums 3,4,7,10,13,21,43,77,89 find num 10 nums 3,4,13,10,2,7,89 nums.sort print num...