加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
RectCover.php 1.17 KB
一键复制 编辑 原始数据 按行查看 历史
star 提交于 2018-08-31 09:54 . 10-矩形覆盖
<?php
/**
* 题目:矩形覆盖
* 描述:我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2* n的大矩形,总共有多少种方法?
*
* 解答, -------------------
* | | | | | | |
* -------------------
* | | | | | | |
* -------------------
* 当第一个 2 * 1小矩形 竖着覆盖时
* -------------------
* |* | | | | | |
* -------------------
* |* | | | | | |
* -------------------
* 有 f(n - 1) 中方法
*
* 当第一个 2 * 1小矩形 横着覆盖时,由题意,则下面的要覆盖必须,横着覆盖
* -------------------
* |* | *| | | | |
* -------------------
* | | | | | | |
* -------------------
* 有 f(n - 2) 中方法
*
* 所以 f(n) = f(n - 1) + f(n - 2)
*
*/
function rectCover($number)
{
if ($number == 0) {
return 0;
}
elseif ($number == 1) {
return 1;
}
elseif ($number == 2) {
return 2;
}
return rectCover($number - 1) + rectCover($number - 2);
}
echo rectCover(4);
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化