题解
2025-03-11 21:14:44
发布于:江苏
0阅读
0回复
0点赞
#include<iostream>
using namespace std;
long long n,a[65];//long long防递推结果太大
//int f(int n){ ——————TLE(TLE思路:(虽然超时但是可以看思路)和铺瓷砖一个逻辑)
// if(n==1){ (每次只有横着铺两个和竖着铺一个的可能)
// return 1; (所以可以简化成一行,每次就是铺两格和铺一格的区别)
// } (这样就可以转换成递归乐,但3、4测试点会超时)
// if(n==2){ (既然递归没用,那么递推上)
// return 2;
// }
// return f(n-1)+f(n-2);
//}
int main(){
cin>>n;
//cout<<f(n);
a[1]=1;//一格一种铺法
a[2]=2;//两格两种铺法
for(int i=3;i<=n;i++){
a[i]=a[i-1]+a[i-2];//随便试几个:1-1,2-2,3-3,4-5,5-8,斐波那契数列无疑
}
cout<<a[n];//不会有人忘了输出找半天错吧(悲)
}
这里空空如也
有帮助,赞一个