将一个3*n的矩形用1*2的矩形填充,n为奇数时一定不能被填满,n*3%2==1

接下来处理这个问题我们要从简单的情况开始考虑,所谓递归就是要能将问题的规模不断减小,通过小问题的解决最后将复杂问题解决。如果是3*2的情况仅有3种可能

那么我们来考虑3*4的矩形是否一些就是有这两个3*2的矩形拼接在一起的多种组合,当然还包含一种特殊的情况即如下图所示的拼接方法

把 4, 6, 8.... 看成一整块,就有下图两种情况(正着,倒着)

那么我们可以将其排成的各种情况分成如下两大类

由自身单独构成的矩形(即不可以分割)

可以分割的情况,即2*f(n-2i)(此时2i>2)/3*f(n-2i)(此时2i==2)

如图所示

代码如下:

 #include<iostream>
#include<cstdio>
using namespace std;
int till(int n)
{
int s,i;
if(n!=)
{
s=;
}
else
return ;
for(i=;i<n;)
{
if(i==)
s=s+*till(n-i);
else
s=s+*till(n-i);
i=i+;
}
return s;
}
int main()
{
int n;
while(cin>>n)
{
if(n==-)
break;
if(n%==)
cout<<<<endl;
else if(n==)
cout<<<<endl;
else
cout<<till(n)<<endl;
}
return ;
}

最新文章

  1. PS------“窗口” -&gt; &quot;扩展功能&quot;使用方法
  2. Silverlight管理系统源码(用于开发ERP、OA、CRM、HR、进销存、财务等系统之用)
  3. 斯坦福iOS7公开课7-9笔记及演示Demo
  4. 2D Skeletal Animation Ready
  5. AI
  6. openldap安装配置
  7. Mysql启动失败 MYSQL:The server quit without updating PID file
  8. 文件上传与下载/Mail
  9. 12C 连接方式和 Oracle Easy Connect Naming method
  10. shell学习指南-阅读笔记
  11. PHP session有效期session.gc_maxlifetime详解
  12. TortoiseGit拉取或推送,输入账号密码后提示 HTTP Basic: Access denied fatal: Authentication failed 解决方案
  13. unicode,gbk,utfF-8字符编码方式的区别
  14. [转]Spark学习之路 (三)Spark之RDD
  15. Flink架构、原理与部署测试(转)
  16. Telephone dialer
  17. 我写的RunTime函数之一,为类的某个属性赋值以及方法交换
  18. Kafka:ZK+Kafka+Spark Streaming集群环境搭建(十七)Elasticsearch-6.2.2集群安装,组件安装
  19. [转]JVM参数设置、分析
  20. 泛微e-cology和Oracle无法启动的解决方案

热门文章

  1. Linux 学习之虚拟机下的网络连接
  2. C语言判断回文数
  3. hdu5387(2015多校8)--Clock(模拟)
  4. Android开源git40个App源代码
  5. Linux问题,磁盘分区打不开了
  6. C++输入一行字符串的一点小结
  7. 小白学开发(iOS)OC_ 字符串重组(2015-08-13)
  8. WPF3.5 使用BINDINGGROUP进行实体类和集合验证
  9. ContentPresenter理解
  10. html的dtd声明