1. 程式人生 > >爬樓梯(DP)

爬樓梯(DP)

 爬樓梯

Time Limit: 1 Sec  Memory Limit: 128 MB
Submit: 261  Solved: 137
[Submit][Status][Web Board]

Description

小時候我們都玩過爬樓梯的遊戲:兩人猜拳,贏了可向上爬一級,誰先到最高階則獲勝。作為大學生,我們應該玩一個更有水平的遊戲。
現在一個人要上n級樓梯,每一步可以選擇上一級或者上兩級,但是不能後退。求上這n級樓梯的方案數。

Input

第一行只有一個整數T(1<=T<=45),表示資料組數。
下面的T行每一行有一個整數n(1<=n<=45),表示有多少級樓梯。

Output

對於每一組資料輸出一個整數s,表示方案數。

Sample Input

4
1
2
3
4

Sample Output

1
2
3
5
程式碼:
#include<cstdio> 
using namespace std; 
  
int dp[50]; 
  
int main() 
{ 
    dp[1]=1; 
    dp[2]=2; 
    for(int i=3;i<=46;i++) 
        dp[i]=dp[i-1]+dp[i-2]; 
    int t; 
    scanf("%d",&t); 
    int n; 
    while(t--) 
    { 
        scanf("%d",&n); 
        printf("%d\n",dp[n]); 
  
    } 
    return 0; 
}