HDU 2046 骨牌鋪方格(遞推)
阿新 • • 發佈:2019-01-30
題目:HDU-2046 骨牌鋪方格
題目連結:http://acm.hdu.edu.cn/showproblem.php?pid=2046
題目:
骨牌鋪方格
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 40817 Accepted Submission(s): 19793
Problem Description 在2×n的一個長方形方格中,用一個1× 2的骨牌鋪滿方格,輸入n ,輸出鋪放方案的總數.
例如n=3時,為2× 3方格,骨牌的鋪放方案有三種,如下圖:
Input 輸入資料由多行組成,每行包含一個整數n,表示該測試例項的長方形方格的規格是2×n (0<n<=50)。
Output 對於每個測試例項,請輸出鋪放方案的總數,每個例項的輸出佔一行。
Sample Input 1 3 2
Sample Output 1 3 2 很簡單很簡單,遞推關係式為,f(n)=f(n-1)+f(n-2),畫圖畫兩個就推出來,唉,畫的心累。
#include<iostream> #include<cstring> #include<algorithm> #include<cstdio> #include<math.h> using namespace std; const int maxn=55; long long ans[maxn]; int n; int main(){ for(int i=1;i<=50;i++) if(i==1) ans[i]=1; else if(i==2) ans[i]=2; else ans[i]=ans[i-1]+ans[i-2]; while(cin>>n){ cout<<ans[n]<<endl; } return 0; }
加油~