剑指offer(10)矩形覆盖

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));
	}
}

猜你喜欢

转载自blog.csdn.net/hxl0925/article/details/89403880
今日推荐