在你面前有乙個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輸出不同的走法數...