清澄A1023. 瓷砖铺放

来源:互联网 发布:知乎 十号胖狐狸 编辑:程序博客网 时间:2024/05/01 04:48
问题描述
  有一长度为N(1<=N<=10)的地板,给定两种不同瓷砖:一种长度为1,另一种长度为2,数目不限。要将这个长度为N的地板铺满,一共有多少种不同的铺法?
  例如,长度为4的地面一共有如下5种铺法:
  4=1+1+1+1
  4=2+1+1
  4=1+2+1
  4=1+1+2
  4=2+2
  编程用递归的方法求解上述问题。
输入格式
  只有一个数N,代表地板的长度
输出格式
  输出一个数,代表所有不同的瓷砖铺放方法的总数
样例输入
4
样例输出

5



#include"stdio.h"
int fact(int);
int main ()
{
int n,end;//瓷砖长度 输出值 
scanf("%d",&n);
end=fact(n);
printf("%d",end);
return 0;
}
int fact(int n)
{
int p;//返回值 
if(n==1)
   p=1;
if(n==2)
        p=2;
    if(n>2)
       p=fact(n-1)+fact(n-2);//emmmm我是体现了递归思想的 但是总感觉有些心虚 果然好数学 
    
    return p;
}//其实我是很气的 但还是要保持微笑 诶 好气哦 把它当成实际题目 老老实实写 结果写了好几个小时解不出来 但是一把它当作数学题目 规律一找 几分钟就搞定了 那我之前是在干啥啊 哦靠! 

原创粉丝点击