C语言求解矩形覆盖

  1. 解题思路:对于2*n的一个矩形 去考虑一下右侧的组成形状 有两种可能:一种是竖着的2*1矩形,另一种是两个横着的2*1矩形。因此dp[n]=dp[n-1]+dp[n-2]
/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param number int整型 
 * @return int整型
 *
 * C语言声明定义全局变量请加上static,防止重复定义
 */
int rectCover(int number ) {
    int dp[40];
    dp[0]=0;
    dp[1]=1;
    dp[2]=2;
    if(number<=2)
        return dp[number];
    for(int i=3;i<=number;i++)
        dp[i]=dp[i-1]+dp[i-2];
    return dp[number];
}