当时比赛并未做出来,主要被大数的处理难住了,水平太菜。//大数 a[i]=a[i-2]*2+a[i-1]
A. Tiling
Time Limit: 1000ms
Memory Limit: 32768KB
64-bit integer IO format:
%I64d Java class name:
Main
In how many ways can you tile a 2xn rectangle by 2x1 or 2x2 tiles?
Here is a sample tiling of a 2x17 rectangle.
Input
Input is a sequence of lines, each line containing an integer number
0 <= n <= 250.
Output
For each line of input, output one integer number in a separate line giving the number of possible tilings of a 2x
n rectangle.
Sample Input
2 8 12
Sample Output
3 171 2731
#include<stdio.h> #include<string.h> #include<iostream> using namespace std; int a[270][270]; int main() { int n,i; while(scanf("%d",&n)!=EOF) { a[0][0]=1; a[1][0]= 1; a[2][0]= 3; int temp=0; for(i=3; i<=250; i++) { for(int j=0; j<=100; j++) { temp+=a[i-1][j]+a[i-2][j]*2; a[i][j]=temp%10; temp/=10;//数组存大数 } } for(i=99;i>=0;i--) { if(a[n][i]!=0) break; } for(;i>=0;i--) { printf("%d",a[n][i]); } printf("\n"); } }