0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

遞歸指的是在函數(shù)的定義中使用函數(shù)自身的方法

電子工程師 ? 來(lái)源:未知 ? 作者:李倩 ? 2018-11-12 15:06 ? 次閱讀

遞歸指的是在函數(shù)的定義中使用函數(shù)自身的方法。

舉個(gè)例子:從前有座山,山里有座廟,廟里有個(gè)老和尚,正在給小和尚講故事呢!故事是什么呢?"從前有座山,山里有座廟,廟里有個(gè)老和尚,正在給小和尚講故事呢!故事是什么呢?'從前有座山,山里有座廟,廟里有個(gè)老和尚,正在給小和尚講故事呢!故事是什么呢?……'"

語(yǔ)法格式如下:

voidrecursion()

{ statements; ... ... ... recursion(); /* 函數(shù)調(diào)用自身 */ ... ... ...

}

intmain()

{ recursion();

}

流程圖:

C語(yǔ)言支持遞歸,即一個(gè)函數(shù)可以調(diào)用其自身。但在使用遞歸時(shí),程序員需要注意定義一個(gè)從函數(shù)退出的條件,否則會(huì)進(jìn)入死循環(huán)。

遞歸函數(shù)在解決許多數(shù)學(xué)問(wèn)題上起了至關(guān)重要的作用,比如計(jì)算一個(gè)數(shù)的階乘、生成斐波那契數(shù)列,等等。

數(shù)的階乘

下面的實(shí)例使用遞歸函數(shù)計(jì)算一個(gè)給定的數(shù)的階乘:

#includedoublefactorial(unsignedinti)

{ if(i <= 1) ? { ? ? ?return1;

} returni * factorial(i - 1);

}

intmain()

{ inti = 15;

printf("%d 的階乘為 %f ", i, factorial(i));

return0;

}

當(dāng)上面的代碼被編譯和執(zhí)行時(shí),它會(huì)產(chǎn)生下列結(jié)果:

15的階乘為1307674368000.000000

斐波那契數(shù)列

下面的實(shí)例使用遞歸函數(shù)生成一個(gè)給定的數(shù)的斐波那契數(shù)列:

#includeintfibonaci(inti)

{ if(i == 0) { return0;

} if(i == 1) { return1;

} returnfibonaci(i-1) + fibonaci(i-2);

}intmain()

{ inti;

for(i = 0; i < 10; i++) ? ?{ ? ? ? printf("%d ", fibonaci(i));

} return0;

}

當(dāng)上面的代碼被編譯和執(zhí)行時(shí),它會(huì)產(chǎn)生下列結(jié)果:

0112358132134

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • C語(yǔ)言
    +關(guān)注

    關(guān)注

    180

    文章

    7594

    瀏覽量

    135861
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4277

    瀏覽量

    62323
  • 遞歸
    +關(guān)注

    關(guān)注

    0

    文章

    28

    瀏覽量

    9003

原文標(biāo)題:C語(yǔ)言中的遞歸

文章出處:【微信號(hào):c-stm32,微信公眾號(hào):STM32嵌入式開(kāi)發(fā)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    快速掌握Python的遞歸函數(shù)與匿名函數(shù)調(diào)用

    好就容易畫(huà)虎不成反類犬,  b) Python中使用lambda關(guān)鍵字來(lái)創(chuàng)建匿名函數(shù)。所謂匿名,即不再使用def這種標(biāo)準(zhǔn)形式定義函數(shù),需要
    發(fā)表于 07-19 16:22

    Labview遞歸函數(shù)的使用案例

    Labview遞歸函數(shù)的使用案例,簡(jiǎn)單的1+2+3...+100求和,簡(jiǎn)單易懂,充分理解遞歸函數(shù)的思想
    發(fā)表于 10-09 09:37

    matlab自定義函數(shù)調(diào)用的方法

    matlab自定義函數(shù)調(diào)用的方法 命令文件/函數(shù)文件+ 函數(shù)文件 - 多
    發(fā)表于 11-29 13:14 ?88次下載

    C++教程之函數(shù)遞歸調(diào)用

    C++教程之函數(shù)遞歸調(diào)用 執(zhí)行函數(shù) f 的過(guò)程中,又要調(diào)用 f 函數(shù)本身,稱為函數(shù)
    發(fā)表于 05-15 18:00 ?35次下載

    C++的實(shí)驗(yàn)教程之函數(shù)遞歸算法資料免費(fèi)下載

    函數(shù)遞歸算法 1.范例:求組合數(shù), 一、實(shí)驗(yàn)?zāi)康?. 學(xué)會(huì)解決簡(jiǎn)單的遞歸算法。2. 掌握函數(shù)的嵌套調(diào)用。
    發(fā)表于 01-29 10:51 ?2次下載
    C++的實(shí)驗(yàn)教程之<b class='flag-5'>函數(shù)</b>的<b class='flag-5'>遞歸</b>算法資料免費(fèi)下載

    C語(yǔ)言函數(shù)的實(shí)驗(yàn)詳細(xì)資料說(shuō)明

    實(shí)驗(yàn)?zāi)康暮鸵螅?)掌握C語(yǔ)言函數(shù)定義方法、函數(shù)的聲明及函數(shù)的調(diào)用方法。(2)掌握
    發(fā)表于 12-06 08:00 ?4次下載
    C語(yǔ)言<b class='flag-5'>函數(shù)</b>的實(shí)驗(yàn)詳細(xì)資料說(shuō)明

    PyTorch中使用ReLU激活函數(shù)的例子

    PyTorch已為我們實(shí)現(xiàn)了大多數(shù)常用的非線性激活函數(shù),我們可以像使用任何其他的層那樣使用它們。讓我們快速看一個(gè)PyTorch中使用ReLU激活函數(shù)的例子:
    的頭像 發(fā)表于 07-06 15:27 ?2465次閱讀

    C語(yǔ)言-內(nèi)聯(lián)函數(shù)、遞歸函數(shù)、指針函數(shù)

    這篇文章介紹C語(yǔ)言的內(nèi)聯(lián)函數(shù)、遞歸函數(shù)、函數(shù)指針、指針函數(shù)、局部地址、const關(guān)鍵字、extern關(guān)鍵字等知識(shí)點(diǎn);這些知識(shí)點(diǎn)在實(shí)際項(xiàng)目開(kāi)發(fā)
    的頭像 發(fā)表于 08-14 10:03 ?1637次閱讀

    C語(yǔ)言如何獲得自身定義函數(shù)的實(shí)際地址和大小嗎

    我們先看地址。C語(yǔ)言無(wú)法定義函數(shù)外標(biāo)簽,函數(shù)內(nèi)標(biāo)簽從使用到訪問(wèn)處處受限,我們好像只剩函數(shù)名可以用。但函數(shù)名表達(dá)式未必等同于
    發(fā)表于 12-02 10:52 ?1033次閱讀

    Python-函數(shù)的進(jìn)階與遞歸

    程序開(kāi)發(fā)中,有時(shí)候,會(huì)希望一個(gè)函數(shù)執(zhí)行結(jié)束后,告訴調(diào)用者 **一個(gè)結(jié)果** ,以便調(diào)用者針對(duì)結(jié)果作后續(xù)的處理,返回值是函數(shù)完成工作后,最后給調(diào)用者的一個(gè)結(jié)果,
    的頭像 發(fā)表于 02-16 15:19 ?732次閱讀
    Python-<b class='flag-5'>函數(shù)</b>的進(jìn)階與<b class='flag-5'>遞歸</b>

    Python支持遞歸函數(shù)

    Python支持遞歸函數(shù)——即直接或間接地調(diào)用自身以進(jìn)行循環(huán)的函數(shù)。遞歸是頗為高級(jí)的話題,并且它在Python中相對(duì)少見(jiàn)。然而,它是一項(xiàng)應(yīng)該
    的頭像 發(fā)表于 02-21 14:28 ?613次閱讀

    函數(shù)遞歸-3

    程序調(diào)用自身的編程技巧稱為遞歸(recursion)。遞歸作為一種算法程序設(shè)計(jì)語(yǔ)言中廣泛應(yīng)用。一個(gè)過(guò)程或函數(shù)在其
    的頭像 發(fā)表于 02-21 15:57 ?547次閱讀

    什么是Python的遞歸函數(shù)

    遞歸函數(shù)必須有終止條件。編程中,函數(shù)的調(diào)用要占用名叫棧(stack)的內(nèi)存空間。調(diào)用函數(shù)時(shí),程序會(huì)將相關(guān)的數(shù)據(jù)存儲(chǔ)到計(jì)算機(jī)的棧里。
    的頭像 發(fā)表于 02-23 10:25 ?1767次閱讀

    python定義函數(shù)與調(diào)用函數(shù)的順序

    定義函數(shù)與調(diào)用函數(shù)的順序 函數(shù)定義后,本身是不會(huì)自動(dòng)執(zhí)行的,只有在被調(diào)用后,函數(shù)才會(huì)被執(zhí)行,得
    的頭像 發(fā)表于 10-04 17:17 ?1240次閱讀

    關(guān)于C語(yǔ)言中的遞歸

    遞歸指的是函數(shù)定義中使函數(shù)
    發(fā)表于 02-26 10:34 ?313次閱讀
    關(guān)于C語(yǔ)言中的<b class='flag-5'>遞歸</b>