【九度OJ1390】|【剑指offer9】斐波那契数列之矩形覆盖
博客专区 > aqia358 的博客 > 博客详情
【九度OJ1390】|【剑指offer9】斐波那契数列之矩形覆盖
aqia358 发表于4年前
【九度OJ1390】|【剑指offer9】斐波那契数列之矩形覆盖
  • 发表于 4年前
  • 阅读 43
  • 收藏 0
  • 点赞 0
  • 评论 0

标题:腾讯云 新注册用户域名抢购1元起>>>   

题目描述:

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

输入:

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

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

输出:

对应每个测试案例,

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

样例输入:
4
样例输出:
5

分析:把2约掉本题即为基本的斐波那契数列求值问题


import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.StreamTokenizer;

/**
 * 斐波那契数列之矩形覆盖 
 * @author aqia358
 *
 */
public class Main {

	public static long f(int n){
		long[] a = new long[n+3];
		a[0] = 0;
		a[1] = 1;
		a[2] = 2;
		int pos = 3;
		while(pos <= n){
			a[pos] = a[pos-1] + a[pos-2];
			pos++;
		}
		return a[n];
	}
	public static void main(String[] args) throws IOException {
		StreamTokenizer st = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));
		while(st.nextToken() != st.TT_EOF){
			System.out.println(f((int)st.nval));
		}
	}

}





共有 人打赏支持
粉丝 6
博文 81
码字总数 30297
×
aqia358
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: