poj2506——Tiling(递推+大数加)
Description In how many ways can you tile a 2xn rectangle by 2x1 or 2x2 tiles? Input Input is a sequence of lines,each line containing an integer number 0 <= n <= 250. For each line of input,output one integer number in a separate line giving the number of possible tilings of a 2xn rectangle. 2 3 给2x1和2x2的地板,求铺成2xn的面积有多少种排列方式 #include<cstdio> #include<string> #include<iostream> using namespace std; string a[300]; string Add(string s1,string s2) { if (s1.length()<s2.length()) swap(s1,s2); int i,j; for(i=s1.length()-1,j=s2.length()-1;i>=0;i--,j--) { s1[i]=s1[i]+(j>=0?s2[j]-'0':0); if(s1[i]-'0'>=10) { s1[i]=(s1[i]-'0')%10+'0'; if(i) s1[i-1]++; else s1='1'+s1; } } return s1; } int main() { int i,n; a[0]="1",a[1]="1",a[2]="3"; for (i=3; i<=250; i++) a[i]=Add(Add(a[i-1],a[i-2]),a[i-2]); while (cin>>n) cout<<a[n]<<endl; return 0; } (编辑:PHP编程网 - 黄冈站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |