Tiling
Description
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 2xn rectangle.
Sample Input 2 8 12 100 200 Sample Output 3 171 2731 845100400152152934331135470251 1071292029505993517027974728227441735014801995855195223534251 Source |
提示
题意:
给你2*1和2*2的瓦片,问把2*n(0<=n<=250)铺满有几种情况?
思路:
详细解析.(要注意n=0时输出的是1.)
示例程序
Source Code
Problem: 2506 Code Length: 876B
Memory: 5564K Time: 344MS
Language: Java Result: Accepted
import java.math.*;
import java.util.*;
public class Main
{
public static void main(String[] args)
{
Scanner in = new Scanner(System.in);
int n,i;
BigInteger p,f1,f2,v;
v=BigInteger.valueOf(2);
while (in.hasNext())
{
f1=BigInteger.valueOf(1);
f2=BigInteger.valueOf(3);
n=in.nextInt();
if(n==1||n==0)
{
System.out.println(f1);
}
else if(n==2)
{
System.out.println(f2);
}
else
{
p=f1.multiply(v).add(f2);
f1=f2;
f2=p;
for(i=4;n>=i;i++)
{
p=f1.multiply(v).add(f2);
f1=f2;
f2=p;
}
System.out.println(p);
}
}
}
}