剑指offer面试题9——矩形框覆盖(递归改循环,斐波那契数列)

题目1390:矩形覆盖

时间限制:1 秒

内存限制:32 兆

特殊判题:

提交:1636

解决:1040

题目描述:

我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?

 

输入:

输入可能包含多个测试样例,对于每个测试案例,

输入包括一个整数n(1<=n<=70),其中n为偶数。

 

输出:

对应每个测试案例,

输出用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有的方法数。

 

样例输入:
4
样例输出:
5
答疑:
解题遇到问题?分享解题心得?讨论本题请访问: http://t.jobdu.com/thread-8113-1-1.html
#include<iostream>

using namespace std;

#define LINT long long

LINT fbi(LINT n)

{

	if(n==0)

		return 0;

	if(n==1)

		return 1;

	if(n==2)

		return 2;

	LINT an=1;

	LINT am=2;

	LINT i=3;

	LINT re=0;

	while(1)

	{

		re=an+am;

		if(i==n)

			return re;

		i++;

		an=am;

		am=re;

	}

}

int main()

{

	LINT n;

	while(cin>>n)

		cout<<fbi(n)<<endl;

}

  

你可能感兴趣的:(面试题)