n how many ways can you tile a 2xn rectangle by 2x1 or 2x2 tiles?
Here is a sample tiling of a 2x17 rectangle.
简单的递推题 但加上了大数。。
Here is a sample tiling of a 2x17 rectangle.
![](https://i-blog.csdnimg.cn/blog_migrate/09098a4c7bc0e6dc5cb68974dc819f84.jpeg)
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
题意 :有一个2*n的大长方体;只用1*2,2*2两种长方体有多少种方法构成这个大长方体。
代码:
import java.math.BigInteger;
import java.util.Scanner;;
public class Main {
public static void main(String[] args)
{
Scanner cin=new Scanner(System.in);
BigInteger[] q=new BigInteger[255]; //大数数组的 定义
q[0]=BigInteger.ONE; //大数数组的元素赋值 q[0]=1
q[1]=BigInteger.ONE;
q[2]=q[0].add(q[0].add(q[1])); //大数的加减乘除都是函数形式
for(int i=3;i<=250;i++)
q[i]=q[i-1].add(q[i-2].add(q[i-2]));
int t;
while(cin.hasNext()) //多重输入
{
t=cin.nextInt();
System.out.println(q[t]);
}
cin.close(); //多重输入要关闭文件
}
}
简单的递推题 但加上了大数。。
再次证明了JAVA对大数问题的简单实用