1. 程式人生 > >2018年全國多校演算法寒假訓練營練習比賽(第一場) Problem:H

2018年全國多校演算法寒假訓練營練習比賽(第一場) Problem:H

問題H:方塊與收納盒                  時間限制:1 Sec 記憶體限制: 32768K

Problem Description

現在有一個大小n*1的收納盒,我們手裡有無數個大小為1*1和2*1的小方塊,我們需要用這些方塊填滿收納盒,請問我們有多少種不同的方法填滿這個收納盒
Input
第一行是樣例數T
第2到2+T-1行每行有一個整數n(n<=80),描述每個樣例中的n。
Output
對於每個樣例輸出對應的方法數
Sample Input
3
1
2
4


Sample Output
1
2
5



題目網址: https://www.nowcoder.com/acm/contest/67/H

分析:

這道題考察的是斐波那契數列。公式:F(n)=F(n-1)+F(n-2)(n>=2,n∈N*)。
程式碼:
    #include <stdio.h>  
    int main()  
    {  
        long long int T,n,i,j,a[99];//用int範圍不夠,用long long int (我在這錯了一次= =!)  
        scanf("%lld",&T);  
        for(i=0;i<T;i++)  
        {  
            a[0]=0,a[1]=1;//斐波那契數列前兩項  
            scanf("%lld",&n);  
            for(j=2;j<n+2;j++)  
            {  
                a[j]=a[j-1]+a[j-2];//斐波那契數列公式  
      
            }  
            printf("%lld\n",a[j-1]);//這裡j是n+2,要減1變成n+1  
      
        }  
        return 0;  
    }