有一个1×n的长方形,由边长为1的n个方格构成,例如,当n=3时为1×3的方格长方形如下图所示。求用1×1、1×2、1×3的骨牌铺满方格的方案总数。
输入格式:
测试数据有多组,处理到文件尾。每组测试输入一个整数n(1≤n≤50)。
输出格式:
对于每组测试,输出一行,包含一个整数,表示用骨牌铺满方格的方案总数。
输入样例:
3
输出样例:
4
来源:
[1] 黄龙军, 等. 大学生程序设计竞赛入门—C/C++程序设计(微课视频版), 北京:清华大学出版社, 2020.11. ISBN:9787302564744
[2] 黄龙军.程序设计竞赛入门(Python版),北京:清华大学出版社,2021.4. ISBN:9787302571230
参考代码
#include <stdio.h>
// 定义一个数组存储 f(n) 的值
long long f[51];
// 计算 f(n) 的函数
long long domino_tiling(int n) {
// 如果 f(n) 已经计算过,直接返回
if (f