溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

iOS基礎(chǔ)篇——函數(shù)的遞歸調(diào)用(C++)

發(fā)布時(shí)間:2020-06-06 00:37:22 來(lái)源:網(wǎng)絡(luò) 閱讀:1497 作者:崔亞允 欄目:移動(dòng)開發(fā)

藍(lán)鷗iOS培訓(xùn)講師推薦:在C的語(yǔ)言里有基礎(chǔ)和高級(jí)之分,那么如果要想學(xué)好iOS開發(fā)就得先基礎(chǔ)學(xué)起,從認(rèn)識(shí)到函數(shù)也是一個(gè)學(xué)習(xí)過(guò)程。今天的內(nèi)容函數(shù)的遞歸調(diào)用問(wèn)題。

函數(shù)的遞歸調(diào)用:在調(diào)用一個(gè)函數(shù)的過(guò)程中又出現(xiàn)直接或間接的調(diào)用該函數(shù)本身。舉個(gè)例子:

iOS基礎(chǔ)篇——函數(shù)的遞歸調(diào)用(C++)

iOS基礎(chǔ)篇——函數(shù)的遞歸調(diào)用(C++)

直接調(diào)用本函數(shù)

下面圖是間接調(diào)用本函數(shù),在調(diào)用f1函數(shù)過(guò)程中要調(diào)用f2函數(shù),然而在調(diào)用f2函數(shù)過(guò)程中還要調(diào)用f1函數(shù)。

iOS基礎(chǔ)篇——函數(shù)的遞歸調(diào)用(C++)

從上面的圖中可以看出,這兩種遞歸調(diào)用都是沒(méi)有終止的自身調(diào)用,很顯然,程序中不應(yīng)該出現(xiàn)這樣的沒(méi)有終止的遞歸調(diào)用,應(yīng)該出現(xiàn)有限次數(shù)的有終止的遞歸調(diào)用,可以用if語(yǔ)句來(lái)控制,只有在某一條件成立時(shí)才會(huì)往下執(zhí)行遞歸調(diào)用。

遞歸函數(shù):包含遞歸調(diào)用的函數(shù)

舉例說(shuō)明:如有5人坐在一起,問(wèn)第5個(gè)人年齡多大?說(shuō)是比第4個(gè)人長(zhǎng)2歲,第4個(gè)人的年齡是,比第3個(gè)人長(zhǎng)2歲,問(wèn)第3個(gè)人,又比第2個(gè)人長(zhǎng)2歲,問(wèn)第2個(gè)人,又比第1個(gè)人長(zhǎng)2歲,那么第1個(gè)人18,問(wèn)第5個(gè)人的年齡是?(每個(gè)人都比前1個(gè)人大2歲)如下:

iOS基礎(chǔ)篇——函數(shù)的遞歸調(diào)用(C++)

那么5個(gè)人年齡過(guò)表如下,可以看出,當(dāng)n>1時(shí),求第n個(gè)人的年齡的公式是一樣的,所以可用一個(gè)函數(shù)表示他們之間的關(guān)系。

iOS基礎(chǔ)篇——函數(shù)的遞歸調(diào)用(C++)

其中的age函數(shù)用來(lái)實(shí)現(xiàn)上述遞歸過(guò)程,用C++來(lái)實(shí)現(xiàn):

iOS基礎(chǔ)篇——函數(shù)的遞歸調(diào)用(C++)

調(diào)用過(guò)程如圖:

iOS基礎(chǔ)篇——函數(shù)的遞歸調(diào)用(C++)

下面舉個(gè)例子求n!事實(shí)上就是從1*2*3*...*n

iOS基礎(chǔ)篇——函數(shù)的遞歸調(diào)用(C++)iOS基礎(chǔ)篇——函數(shù)的遞歸調(diào)用(C++)

那么有很多問(wèn)題都可以用遞歸方法來(lái)解決,如上段程序中解決的n!,用程序?qū)懗鰜?lái)就很容易理解了,這樣一來(lái)就很利于同學(xué)拉的理解與思路。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI