package java_jianzhioffer_algorithm;
/**
* 题目:我们可以用21的小矩形横着或者竖着去覆盖更大的矩形。
* 请问用n个21的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?
* @author hexiaoli
*思考:
* 1)Fibonacci数列变形
*/
import java.util.ArrayList;
import java.util.Scanner;
public class RectangleCover {
public static int rectangleCover(int target) {
ArrayList<Integer> array = new ArrayList<>();
for (int i = 0; i <= target; i++) {
if (i <= 2) {
array.add(i);
} else {
array.add(array.get(i - 1) + array.get(i - 2));
}
}
return array.get(array.size() - 1);
}
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
System.out.println(rectangleCover(n));
}
}
剑指offer(10)矩形覆盖
猜你喜欢
转载自blog.csdn.net/hxl0925/article/details/89403880
今日推荐
周排行