1. 程式人生 > >NYOJ-76-超級臺階

NYOJ-76-超級臺階

超級臺階
時間限制:1000 ms | 記憶體限制:65535 KB
難度:3
描述
有一樓梯共m級,剛開始時你在第一級,若每次只能跨上一級或二級,要走上第m級,共有多少走法?

注:規定從一級到一級有0種走法。

輸入
輸入資料首先包含一個整數n(1<=n<=100),表示測試例項的個數,然後是n行資料,每行包含一個整數m,(1<=m<=40), 表示樓梯的級數。
輸出
對於每個測試例項,請輸出不同走法的數量。
樣例輸入
2
2
3
樣例輸出
1
2

想著不要水題,結果還是水了一道。
變異版的斐波那契數列,思想都一樣,就是有些小變化

程式碼

#include<stdio.h>
#include<string.h>
#include<stack>
#include<math.h>
#include<iostream>
#include<algorithm>
using namespace std;
int a[41];
void f()
{//直接打表
    a[0]=0;
    a[1]=0;
    a[2]=1;
    a[3]=2;
    for(int i=4; i<=41; i++)
        a[i]=a[i-1]+a[i-2];
}
int
main() { f(); int n; scanf("%d",&n); while(n--) { int m; scanf("%d",&m); printf("%d\n",a[m]); } return 0; }