程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 九度OJ—題目1205:N階樓梯上樓問題 (非遞歸)

九度OJ—題目1205:N階樓梯上樓問題 (非遞歸)

編輯:C++入門知識

九度OJ—題目1205:N階樓梯上樓問題 (非遞歸)


\

題目描述:

N階樓梯上樓問題:一次可以走兩階或一階,問有多少種上樓方式。(要求采用非遞歸)<喎?http://www.Bkjia.com/kf/ware/vc/" target="_blank" class="keylink">vcD4KCjxzdHJvbmc+yuTI66O6PC9zdHJvbmc+IAo8cD7K5MjrsPzAqNK7uPbV+8r9TiwoMTw9Tjw5MCmhozwvcD4KCjxzdHJvbmc+yuSz9qO6PC9zdHJvbmc+IAo8cD6/ycTc09C24NfpsuLK1Mr9vt2jrLbU09rDv9fpyv2+3aOsPGJyPgrK5LP2tbHCpczdvdfK/crHTsqxtcTJz8Klt73Kvbj2yv2hozwvcD4KCjxzdHJvbmc+0fnA/crkyOujujwvc3Ryb25nPiAKPHByZSBjbGFzcz0="brush:java;">4 樣例輸出:

5
來源:
2008年華中科技大學計算機保研機試真題 答疑:
解題遇到問題?分享解題心得?討論本題請訪問:http://t.jobdu.com/thread-7928-1-1.html


基本思路:

走到第n階時可能是從第n-1階走一步到的,也可能是從n-2階走兩階到的,設F(n)為走到n階的種數,則F(n)=F(n-1)+F(n-2).

這是一個動態規劃的問題,其實就是一個斐波那契數列。


由於題中規定不能用遞歸的方式解,本來規定時間限制1s,遞歸估計也肯定超時。

又因為N<90,勢必會最後來個大數處理,用long long 類型數據。


    #include   
       
    int main()  
    {  
            int i,N;  
            long long a[90];  
            while(~scanf("%d",&N))  
            {               
                    a[1]=1;  
                    a[2]=2;  
                    for(i=3;i<=N;i++)  
                            a[i]=a[i-1]+a[i-2];  
                    printf("%lld\n",a[N]);  
            }  
               
            return 0;  
               
    }  
    /************************************************************** 
        Problem: 1205 
        User: vhreal 
        Language: C 
        Result: Accepted 
        Time:0 ms 
        Memory:912 kb 
    ****************************************************************/  


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved