遞迴題目練習 爬樓梯

2021-10-04 15:50:52 字數 1325 閱讀 9730

在你面前有乙個n階的樓梯,你一步只能上1階或2階。請問計算出你可以採用多少種不同的方式爬完這個樓梯。

輸入描述:

乙個正整數n(n<=100),表示這個樓梯一共有多少階

輸出描述:

乙個正整數,表示有多少種不同的方式爬完這個樓梯

示例1輸入5輸出

8第一次想到是使用遞迴來實現,但是時間超時了,通過率只有40%。

int function(int statehigh)

測試**:

int main()

#include #define lenght 101

int function(int first,int second,int target)

//當數列的數值每乙個進製大於10,就再往高乙個為位進1。

//比如,前兩個數是5,8。此時的數值為13,但是13>10,所要取餘數,高位進1,得到為3|1,再後乙個資料為8,13,由於個位數值是8與3,相加為11>10,所以十位再進1,得到為1|2.

for(i = 0; i < lenght; i++) }}

int main()

; data[1][0] = 1; //斐波考那契數列賦予初始值

data[2][0] = 2;

for(i = 3; i < lenght; i++)

int num;

scanf("%d",&num);

for(i = lenght - 1; data[num][i] == 0; i--); //去掉末尾的0

for(;i >= 0; i--)

return 0;

}

#include #include #define maxnumber 501

int main()

; int i, j, x;

//初始化值

a[1][0] = 1;

a[2][0] = 1;

a[3][0] = 2;

//從4開始不斷累加

for (i = 4; i < maxnumber ; i++)

for (x = 0; x < maxnumber; x++)

} }int num;

scanf("%d",&num);

//反轉輸出

for (i = maxnumber - 1; a[num][i] == 0; i--);

for (; i >= 0; i--)

return 0;

}

爬樓梯(遞迴)

4017 爬樓梯描述 樹老師爬樓梯,他可以每次走1級或者2級,輸入樓梯的級數,求不同的走法數。例如 樓梯一共有3級,他可以每次都走一級,或者第一次走一級,第二次走兩級也可以第一次走兩級,第二次走一級,一共3種方法。輸入輸入包含若干行,每行包含乙個正整數n,代表樓梯級數,1 n 30 輸出不同的走法數...

爬樓梯 遞迴

題目要求 乙個人爬樓梯,每次可以走一級或者兩級,輸入樓梯級數,求不同的走法數。輸入輸出格式 輸入包含若干行,每行包含乙個正整數n n 30 代表樓梯級數,輸出對應的走法數,每個一行。樣例輸入 58 10樣例輸出 834 89分析 用遞迴將問題分解為規模更小的子問題進行求解。n級台階的走法數 第一步走...

遞迴 爬樓梯

加粗樣式 問題 樹老師爬樓梯,他可以每次走1級或者2級,輸入樓梯的級數,求不同的走法數 例如 樓梯一共有3級,他可以每次都走一級,或者第一次走一 級,第二次走兩級,也可以第一次走兩級,第二次走一級,一 共3種方法。輸入 輸入包含若干行,每行包含乙個正整數n,代表樓梯級數,1 n 30輸出不同的走法數...