中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C語言中如何使用遞歸解決青蛙跳臺階問題

發布時間:2021-11-20 14:33:42 來源:億速云 閱讀:196 作者:小新 欄目:開發技術

這篇文章主要介紹C語言中如何使用遞歸解決青蛙跳臺階問題,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

一、求解思路

臺階的數量為n。

當 n = 1 時,青蛙有一種跳法,即跳1級臺階。

當 n = 2 時,青蛙有兩種跳法,即跳兩次1級臺階或跳一次2級臺階。

當 n = 3 時,青蛙可以先跳2級臺階再跳1級臺階,也可以選擇先跳1級臺階再跳2級臺階,或者是跳三次1級臺階。依次類推,我們就能知道臺階數為n時青蛙的跳法。

但是,這樣子是不是很麻煩呢,再仔細想一下。

還是當 n = 3 時,我們選擇先跳1級臺階,剩下的2級臺階的跳法,是不是就是當 n = 2 時青蛙的跳法;我們選擇先跳2級臺階,剩下的1級臺階的跳法,是不是就是當 n = 1 時青蛙的跳法。

由此可知,n = 3 時青蛙的跳法為 n = 1 時的跳法加上 n = 2 時的跳法。

當 n = N 時,N個臺階的跳法為 N-1 的跳法加上 N-2 的跳法。

乍一看,是不是感覺和斐波那契數列有點像,當然,還是有一丟丟不一樣的,不過我們可以用同樣的數學思想來解決這個問題。

二、代碼實現

1.參考代碼

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
 
int flog(int n)
{
	if (n == 1)	
		return 1;	
	else if (n == 2)
		return 2;	
	else
		return flog(n - 1) + flog(n - 2);
}
int  main()
{
	int n = 0;
    int ways = 0;
	printf("請輸入臺階的數量:");
	scanf("%d", &n);
	ways = flog(n);
	printf("青蛙有%d種跳法",ways);
	return 0;
}

2.運行結果

C語言中如何使用遞歸解決青蛙跳臺階問題

以上是“C語言中如何使用遞歸解決青蛙跳臺階問題”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

开阳县| 中卫市| 任丘市| 中西区| 万山特区| 涿鹿县| 信阳市| 禄丰县| 广灵县| 七台河市| 筠连县| 墨竹工卡县| 江阴市| 滨海县| 崇明县| 无棣县| 栖霞市| 平顶山市| 博罗县| 卢湾区| 襄汾县| 明星| 冕宁县| 塔河县| 喜德县| 上杭县| 东乡| 普宁市| 固镇县| 两当县| 黎川县| 呼和浩特市| 肃北| 潞城市| 老河口市| 化德县| 寿宁县| 沐川县| 图木舒克市| 方城县| 德庆县|