Problem Description
有一樓梯共M級(jí)面氓,剛開始時(shí)你在第一級(jí),若每次只能跨上一級(jí)或二級(jí)河咽,要走上第M級(jí)钠右,共有多少種走法?
Input
輸入數(shù)據(jù)首先包含一個(gè)整數(shù)N忘蟹,表示測(cè)試實(shí)例的個(gè)數(shù)飒房,然后是N行數(shù)據(jù),每行包含一個(gè)整數(shù)M(1<=M<=40),表示樓梯的級(jí)數(shù)媚值。
Output
對(duì)于每個(gè)測(cè)試實(shí)例狠毯,請(qǐng)輸出不同走法的數(shù)量
Sample Input
2 2 3
Sample Output
1 2
java code
簡(jiǎn)單遞推
逆向思考,最后一級(jí)只能是m-1步或是m-2步
總的走法就是m-1的走法加上m-2的走法褥芒,即最后一級(jí)的前一級(jí)的走法
遞推公式就是F(n) = F(n-1) + F(n-2)
令F(1) = 1 , F(2) = 2
也就是斐波拉基遞推
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner cin = new Scanner(System.in);
int n = cin.nextInt();
for (int j = 0; j < n; j++) {
int m = cin.nextInt();
int a[] = new int[45];
for (int i = 2; i <= m; i++) {
a[2] = 1;
a[3] = 2;
if (i > 3)
a[i] = a[i - 1] + a[i - 2];
}
System.out.println(a[m]);
}
cin.close();
}
}```