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;
}
相关推荐
IT方大同几秒前
C语言的组成部分
c语言·开发语言
BINGCHN1 分钟前
流量分析进阶(一):RCTF2025-Shadows of Asgard
开发语言·python
BestOrNothing_20157 分钟前
【C++基础】Day 4:关键字之 new、malloc、constexpr、const、extern及static
c++·八股文·static·extern·new与malloc·constexpr与const
高洁0115 分钟前
具身智能-普通LLM智能体与具身智能:从语言理解到自主行动 (2)
深度学习·算法·aigc·transformer·知识图谱
无敌最俊朗@16 分钟前
如何把一个压缩的视频文件,解压成一张张原始图片-decode_video.c
c++
fpcc16 分钟前
C++编程实践——手动实现std::visit
c++
重启的码农18 分钟前
enet源码解析(4)多通道机制 (Channels)
c++·网络协议
G***669119 分钟前
Java区块链开发
java·开发语言·区块链
重启的码农24 分钟前
enet源码解析(3)数据包 (ENetPacket)
c++·网络协议
l1t26 分钟前
使用DuckDB SQL求解Advent of Code 2024第9题 磁盘碎片整理
数据库·sql·算法·duckdb·advent of code