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;
}
相关推荐
free-elcmacom8 小时前
C++ 默认参数详解:用法、规则与避坑指南
开发语言·c++
码云数智-大飞8 小时前
分布式事务解决方案全景指南:2PC、TCC、SAGA 与 Seata 实战
开发语言
娇娇yyyyyy8 小时前
QT编程(10): QLineEdit
开发语言·qt
Albert Edison8 小时前
【ProtoBuf 语法详解】Any 类型
服务器·开发语言·c++·protobuf
喵叔哟8 小时前
5. 【Blazor全栈开发实战指南】--Blazor组件基础
开发语言·javascript·ecmascript
无忧.芙桃8 小时前
C++11的部分内容(上)
c++
海奥华28 小时前
Rust初步学习
开发语言·学习·rust
小璐资源网9 小时前
C++中如何正确区分`=`和`==`的使用场景?
java·c++·算法
卢锡荣9 小时前
LDR6021Q 车规级 Type‑C PD 控制芯片:一芯赋能,边充边传,稳驭全场景
c语言·开发语言·ios·计算机外设·电脑
N1_WEB9 小时前
HDU:杭电 2018 复试真题汇总
算法