题解
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];//不会有人忘了输出找半天错吧(悲)
}
这里空空如也






有帮助,赞一个