c++贴瓷砖

题目描述

有一块大小是 2 * n 的墙面,现在需要用2种规格的瓷砖铺满,瓷砖规格分别是 2 * 1 和 2 * 2,请计算一共有多少种铺设的方法。

输入

输入的第一行包含一个正整数T(T<=20),表示一共有T组数据,接着是T行数据,每行包含一个正整数N(N<=30),表示墙面的大小是2行N列。

输出

输出一共有多少种铺设的方法,每组数据的输出占一行。

样例输入
复制代码
3
2
8
12
样例输出
复制代码
3
171
2731

这是一道典型的走楼梯问题,公式为dp[i]=dp[i-1]+2*dp[i-2]

上代码:

cpp 复制代码
#include<bits/stdc++.h>
using namespace std; 
int main(){
	long long dp[35];
	int t;
	cin>>t;
	while(t--){
		int n;
		cin>>n;
		dp[1]=1;
		dp[2]=3;
		for(int i=3;i<=n;i++) dp[i]=dp[i-1]+2*dp[i-2];
		cout<<dp[n]<<endl;
	}	
	return 0;
}
相关推荐
kels88991 分钟前
2026 年黄金实时价格数据 API 接口实测推荐
开发语言·笔记·python·金融·区块链
嵌入式小企鹅5 分钟前
大模型算法工程师面试宝典
人工智能·学习·算法·面试·职场和发展·大模型·面经
牢七8 分钟前
链条合集整理
java·开发语言
我不是懒洋洋10 分钟前
手写一个并查集:从原理到最小生成树实战
c语言·c++·经验分享·算法
图码15 分钟前
一文搞懂如何判断字符串是否为Pangram(全字母句)
数据结构·算法·网络安全·数字雕刻·ping++
叼烟扛炮22 分钟前
C++ 知识点06 inline
开发语言·c++·inline
khalil102032 分钟前
代码随想录算法训练营Day-43 动态规划10 | 300.最长递增子序列、674. 最长连续递增序列、718. 最长重复子数组
数据结构·c++·算法·leetcode·动态规划·子序列问题
ximu_polaris44 分钟前
设计模式(C++)-行为型模式-解释器模式
c++·设计模式·解释器模式
曹牧1 小时前
C#:同一项目中维护多个版本的代码
开发语言·c#
AIpanda8881 小时前
数字员工助推AI销冠系统和AI提效软件系统,实现企业智能化转型与运营效率提升
算法