NYOJ-76-超級臺階
阿新 • • 發佈:2019-02-11
超級臺階
時間限制: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;
}