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

C語(yǔ)言遞歸之漢諾塔和青蛙跳臺(tái)階問(wèn)題

 更新時(shí)間:2021年04月09日 14:48:37   作者:一只當(dāng)歸  
這篇文章主要介紹了C語(yǔ)言遞歸之漢諾塔問(wèn)題和青蛙跳臺(tái)階問(wèn)題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

遞歸就是一個(gè)函數(shù)執(zhí)行過(guò)程中調(diào)用自己,在c語(yǔ)言中有很多關(guān)于遞歸的經(jīng)典問(wèn)題,例如:斐波那契數(shù)列問(wèn)題、漢諾塔問(wèn)題等,在研究遞歸問(wèn)題時(shí)我們要注意三點(diǎn):
1.遞歸的結(jié)束條件
2.遞歸在每次進(jìn)行過(guò)程中,都得離條件越來(lái)越近
3.相鄰兩次遞歸調(diào)用之間的關(guān)聯(lián)關(guān)系

漢諾塔問(wèn)題:

有三根桿子A, B, C。A桿上有N個(gè)(N > 1)穿孔圓盤, 盤的尺寸由下到上依次變小.要求按下列規(guī)則將所有圓盤移至C桿:
1.每次只能移動(dòng)一個(gè)圓盤;
2.大盤不能疊在小盤上面,可將圓盤臨時(shí)置于B桿, 也可將從A桿移出的圓盤重新移回A桿, 但都必須尊循上述兩條規(guī)則。求移動(dòng)的過(guò)程。

int step = 0; //設(shè)置全局變量step記錄步數(shù)
void move(int i,char form,char to){
	printf("第%d步,將第%d個(gè)盤子從%c移動(dòng)到%c\n", ++step,i,form, to);
}
void Hanio(int n,char a,char b,char c){
	if (n == 0)
	{
		return;
	}
	Hanio(n - 1,a,c,b); //第n-1個(gè)A柱上的盤子通過(guò)C柱移動(dòng)到B柱
	move(n, a, c);  //將A柱上編號(hào)為n的盤子移動(dòng)到C柱
	Hanio(n - 1, b, a, c); //再將B柱上的第n-1個(gè)盤子通過(guò)A柱移動(dòng)到C柱
}
int main(){
	    int n;
		printf("請(qǐng)輸入漢諾塔中有多少個(gè)圓盤:\n");
		scanf("%d", &n);
		Hanio(n, 'A', 'B', 'C'); //將n個(gè)圓盤從A柱通過(guò)B柱移動(dòng)到C柱
		system("pause");
		return 0;
}

運(yùn)行結(jié)果:

在這里插入圖片描述

青蛙跳臺(tái)階問(wèn)題:

一只青蛙一次可以跳上 1 級(jí)臺(tái)階,也可以跳上2 級(jí)。求該青蛙跳上一個(gè)n級(jí)的臺(tái)階總共有多少種跳法。
當(dāng)n = 1,只有1中跳法;當(dāng)n = 2時(shí),有兩種跳法;當(dāng)n = 3 時(shí),有3種跳法;當(dāng)n = 4時(shí),有5種跳法;當(dāng)n = 5時(shí),有8種跳法。可以總結(jié)為f(n)=f(n-1)+f(n-2),本質(zhì)上與斐波那契數(shù)列相同。

int Frog(int n){
	if (n <= 2 && n >= 0)
	{
		return n;
	}
	else if (n < 0)
	{
		printf("您的輸入錯(cuò)誤\n");
		return n;
	}else
	{
		return Frog(n - 1) + Frog(n - 2);
	}
}
int main(){
		int n;
		printf("請(qǐng)輸入有幾級(jí)臺(tái)階:\n");
		scanf("%d", &n);
		int result = Frog(n);
		if(n >= 0){ 
			printf("青蛙有%d種跳法\n", result);
		}
		system("pause");
		return 0;
}

運(yùn)行結(jié)果

在這里插入圖片描述

到此這篇關(guān)于C語(yǔ)言遞歸之漢諾塔問(wèn)題和青蛙跳臺(tái)階問(wèn)題的文章就介紹到這了,更多相關(guān)C語(yǔ)言遞歸漢諾塔青蛙跳臺(tái)階內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • vscode配置C++環(huán)境的圖文教程

    vscode配置C++環(huán)境的圖文教程

    這篇文章主要介紹了vscode配置C++環(huán)境的教程圖文詳解,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-04-04
  • C++如何獲取系統(tǒng)信息 C++獲取IP地址、硬件信息等

    C++如何獲取系統(tǒng)信息 C++獲取IP地址、硬件信息等

    這篇文章主要為大家詳細(xì)介紹了C++如何獲取系統(tǒng)信,C++獲取IP地址、硬件信息等,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-04-04
  • C語(yǔ)言操作XML文件的技術(shù)和方法

    C語(yǔ)言操作XML文件的技術(shù)和方法

    XML因其靈活性和標(biāo)準(zhǔn)化特性,被廣泛應(yīng)用于數(shù)據(jù)交換、配置文件、Web服務(wù)等領(lǐng)域,C語(yǔ)言作為一種高效、底層的編程語(yǔ)言,在處理XML數(shù)據(jù)方面也有廣泛的應(yīng)用,本文將深入探討C語(yǔ)言操作XML的技術(shù)和方法,需要的朋友可以參考下
    2025-03-03
  • C語(yǔ)言使用四種方法初始化結(jié)構(gòu)體

    C語(yǔ)言使用四種方法初始化結(jié)構(gòu)體

    這篇文章說(shuō)明了什么是結(jié)構(gòu)體,介紹了結(jié)構(gòu)體的概念和使用優(yōu)點(diǎn),在C語(yǔ)言中如何使用和初始化結(jié)構(gòu)體方法,通過(guò)詳細(xì)的代碼展開進(jìn)行說(shuō)明,希望該篇文章對(duì)你有所幫助
    2021-06-06
  • 基于C語(yǔ)言編寫一個(gè)簡(jiǎn)單的抽卡小游戲

    基于C語(yǔ)言編寫一個(gè)簡(jiǎn)單的抽卡小游戲

    這篇文章主要為大家介紹了如何利用C語(yǔ)言實(shí)現(xiàn)原神抽卡的小游戲,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-04-04
  • C++20 統(tǒng)一容器擦除:std::erase 和 std::eraseif的實(shí)現(xiàn)

    C++20 統(tǒng)一容器擦除:std::erase 和 std::eraseif的實(shí)現(xiàn)

    本文主要介紹了C++20 統(tǒng)一容器擦除:std::erase 和 std::erase_if的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2025-04-04
  • C++關(guān)于Makefile的詳解含通用模板

    C++關(guān)于Makefile的詳解含通用模板

    今天小編就為大家分享一篇關(guān)于C++關(guān)于Makefile的詳解含通用模板,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2018-12-12
  • [c++]變量聲明與定義的規(guī)則詳解

    [c++]變量聲明與定義的規(guī)則詳解

    這篇文章主要介紹了[c++]變量聲明與定義的規(guī)則詳解,對(duì)于學(xué)習(xí)c++的朋友來(lái)說(shuō)這是一個(gè)很細(xì)膩的文章,代碼完整,需要的朋友可以參考下
    2021-04-04
  • CRITICAL_SECTION用法案例詳解

    CRITICAL_SECTION用法案例詳解

    這篇文章主要介紹了CRITICAL_SECTION用法案例詳解,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • C++數(shù)據(jù)封裝以及定義結(jié)構(gòu)的詳細(xì)講解

    C++數(shù)據(jù)封裝以及定義結(jié)構(gòu)的詳細(xì)講解

    這篇文章主要詳細(xì)講解了C++數(shù)據(jù)封裝以及定義結(jié)構(gòu),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05

最新評(píng)論

田东县| 志丹县| 恩施市| 屯留县| 肇源县| 大同县| 白城市| 融水| 宁强县| 美姑县| 威海市| 遵化市| 元氏县| 澄城县| 河池市| 大洼县| 营山县| 汕尾市| 新绛县| 资阳市| 友谊县| 安陆市| 离岛区| 郯城县| 合阳县| 崇礼县| 吴江市| 中方县| 隆德县| 苏尼特左旗| 浦城县| 南木林县| 射阳县| 嘉黎县| 乌拉特中旗| 阿图什市| 余江县| 十堰市| 蒲江县| 临澧县| 孝感市|