最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C語言遞歸函數(shù)與漢諾塔問題簡明理解

 更新時(shí)間:2022年07月07日 09:37:27   作者:ChampLixxx  
遞歸(recursive)函數(shù)是“自己調(diào)用自己”的函數(shù),無論是采用直接或間接調(diào)用方式。間接遞歸意味著函數(shù)調(diào)用另一個(gè)函數(shù)(然后可能又調(diào)用第三個(gè)函數(shù)等),最后又調(diào)用第一個(gè)函數(shù)。因?yàn)楹瘮?shù)不可以一直不停地調(diào)用自己,所以遞歸函數(shù)一定具備結(jié)束條件

遞歸函數(shù)

直接或者間接調(diào)用函數(shù)本身。“自己調(diào)用自己”

什么情況下面可以使用遞歸呢?

解決一個(gè)問題時(shí),解決思路化成與問題本身類似的問題時(shí),“遞歸”

是不是所有的遞歸問題,C語言都能支持呢?

不是的

C語言能夠解決的遞歸問題,必須要滿足兩個(gè)條件:

(1) 問題本身一個(gè)遞歸問題。

(2) 遞歸不能是無限遞歸

適合那些遞歸到一定程度時(shí),答案是顯而易見的。

一定需要有一個(gè)“跳出無限遞歸的條件”。

C語言是如何支持遞歸呢?

int age(int n) //從425行開始,定義了一個(gè)標(biāo)識(shí)符 age 
						//age就表示求第n個(gè)人的年齡
		{
			if(n > 1)
			{
				return age(n-1)+2;
			}
			else if(n == 1)
			{
				return 10;
			}
		} 

Hanio(漢諾塔)問題

按照Hanio的規(guī)則,把n個(gè)盤子從A柱移動(dòng)到C柱上面去,

中間可以利用B柱,需要將其移動(dòng)的步驟打印出來。

a、確定函數(shù)名

Hanio : 一旦被確定,表示 按照Hanio的規(guī)則,把n個(gè)盤子從A柱移動(dòng)到C柱上面去,中間可以利用B柱,需要將其移動(dòng)的步驟打印出來。

b、確定參數(shù)

int n , char A , char B , char C

有多少個(gè)盤子

從哪里移 起點(diǎn) A

移到哪兒去 終點(diǎn) C

中間可以利用 中轉(zhuǎn)站 B

c、確定返回值的類型 無

d、代碼、算法具體實(shí)現(xiàn)

void Hanio(int n, char A, char B , char C)
			{
				if(n == 0)
				{
					return ;
				}
				//1.想辦法(Hanio),把n-1個(gè)盤子從A柱移動(dòng)到B柱,中間可以使用C柱
				Hanio(n-1, A ,C , B);
				//2.直接將最后那個(gè)盤子,從A柱移動(dòng)到C柱 
				printf("%c -> %c\n", A , C); 
				//3.想辦法(Hanio),把n-1個(gè)盤子從B柱移動(dòng)到C柱,中間可以使用A柱 
				Hanio(n-1, B ,A , C);
			}

求斐波拉契數(shù)列的前n項(xiàng)和

	//Get_N : 表示求斐波拉契數(shù)列的第n項(xiàng)元素的值
	int Get_N(int n)
	{
		if(n == 1 || n == 2)
		{
			return 1;
		}
		return Get_N(n-1) + Get_N(n-2);
	}
	//sum_fei: 求斐波拉契數(shù)列的前n項(xiàng)和 
		//思路: 
			//先求前面的n-1的和,再加上最后一項(xiàng)元素的和
	int sum_fei(int n)
	{
		if(n == 1)
		{
			return 1;
		}
		return sum_fei(n-1) + Get_N(n);
	}

到此這篇關(guān)于C語言遞歸函數(shù)與漢諾塔問題簡明理解的文章就介紹到這了,更多相關(guān)C語言遞歸函數(shù) 內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C++將音頻PCM數(shù)據(jù)封裝成wav文件的方法

    C++將音頻PCM數(shù)據(jù)封裝成wav文件的方法

    這篇文章主要為大家詳細(xì)介紹了C++將音頻PCM數(shù)據(jù)封裝成wav文件的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • Qt QCompleter自動(dòng)補(bǔ)全的實(shí)現(xiàn)

    Qt QCompleter自動(dòng)補(bǔ)全的實(shí)現(xiàn)

    本文主要介紹了Qt QCompleter自動(dòng)補(bǔ)全的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-04-04
  • c++primer:變量和基本類型詳解

    c++primer:變量和基本類型詳解

    今天小編就為大家分享一篇關(guān)于C++Primer中變量和基本類型的文章,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2021-08-08
  • C++11 并發(fā)指南之多線程初探

    C++11 并發(fā)指南之多線程初探

    這篇文章主要介紹了C++11 并發(fā)指南之多線程初探,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • CreateThread()與beginthread()的區(qū)別詳細(xì)解析

    CreateThread()與beginthread()的區(qū)別詳細(xì)解析

    很多開發(fā)者不清楚這兩者之間的關(guān)系,他們隨意選一個(gè)函數(shù)來用,發(fā)現(xiàn)也沒有什么大問題,于是就忙于解決更為緊迫的任務(wù)去了。等到有一天忽然發(fā)現(xiàn)一個(gè)程序運(yùn)行時(shí)間很長的時(shí)候會(huì)有細(xì)微的內(nèi)存泄露,開發(fā)者絕對(duì)不會(huì)想到是因?yàn)檫@兩套函數(shù)用混的結(jié)果
    2013-09-09
  • C++實(shí)現(xiàn)LeetCode(71.簡化路徑)

    C++實(shí)現(xiàn)LeetCode(71.簡化路徑)

    這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(71.簡化路徑),本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • C++實(shí)現(xiàn)LeetCode(77.Combinations 組合項(xiàng))

    C++實(shí)現(xiàn)LeetCode(77.Combinations 組合項(xiàng))

    這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(Combinations 組合項(xiàng)),本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • C++簡明圖解分析淺拷貝與深拷貝

    C++簡明圖解分析淺拷貝與深拷貝

    在c++中,深拷貝和淺拷貝也算是一個(gè)難點(diǎn),特別是對(duì)于初學(xué)者來說,往往在不知道兩者區(qū)別的情況下而錯(cuò)誤的使用了淺拷貝,從而導(dǎo)致了野指針之類的問題,但是又因?yàn)槿鄙倮斫馑院茈y定位到問題所在
    2022-06-06
  • 通過c語言調(diào)用系統(tǒng)curl動(dòng)態(tài)庫的示例詳解

    通過c語言調(diào)用系統(tǒng)curl動(dòng)態(tài)庫的示例詳解

    這篇文章中我們將通過一個(gè)簡單的示例來講解如何在Ubuntu系統(tǒng)中通過C語言調(diào)用動(dòng)態(tài)庫(共享庫)的方法,我們將使用libcurl庫,這是一個(gè)基于客戶端的URL傳輸庫,廣泛用于各種程序和應(yīng)用中以訪問網(wǎng)頁和服務(wù)器數(shù)據(jù),需要的朋友可以參考下
    2024-03-03
  • C語言中單引號(hào)和雙引號(hào)用法詳解

    C語言中單引號(hào)和雙引號(hào)用法詳解

    C語言中,單引號(hào)用于表示單個(gè)字符常量,而雙引號(hào)用于表示字符串,單引號(hào)中的字符是int類型,雙引號(hào)中的字符串是以null字符結(jié)尾的字符數(shù)組,本文介紹C語言中單引號(hào)和雙引號(hào)用法,感興趣的朋友一起看看吧
    2025-01-01

最新評(píng)論

镇雄县| 佛坪县| 杭锦后旗| 孝感市| 离岛区| 遵义县| 甘肃省| 洱源县| 临沭县| 西贡区| 金平| 晋江市| 张掖市| 繁昌县| 资阳市| 阿巴嘎旗| 珠海市| 怀宁县| 元朗区| 穆棱市| 庐江县| 海兴县| 连州市| 宜兴市| 乌海市| 广丰县| 锡林郭勒盟| 务川| 竹北市| 宜川县| 革吉县| 交城县| 津南区| 辽宁省| 西充县| 漯河市| 安国市| 安阳市| 翼城县| 盐边县| 炉霍县|