package com.jianzhioffer.rectcover;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
/**
* 题目:我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? 思考:
* 1)fibonacci变形
*
* @author hexiaoli
*/
public class Main {
public static int rectCover(int target) {
if (target <= 0) {
return 0;
}
if (target == 1) {
return 1;
}
if (target == 2) {
return 2;
}
int i1 = 1;
int i2 = 2;
int result = 0;
for (int i = 3; i <= target; i++) {
result = i2 + i1;
i1 = i2;
i2 = result;
}
return result;
}
public static void main(String[] args) throws IOException {
BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
String inputStr = input.readLine();
int target = Integer.parseInt(inputStr);
System.out.println(rectCover(target));
}
}