C++90分

P1255 数楼梯

songchunxi @ 2023-06-26 14:49:01


#include <bits/stdc++.h>
using namespace std;
int n,i,j,x=1;
int f[10010][10010];
int main(){
    cin>>n;
    f[1][1]=1;
    f[2][1]=2;
    for(i=3;i<=n;i++){
        for(j=1;j<=x;j++){
            f[i][j]=f[i-1][j]+f[i-2][j];
        }
        for(j=1;j<=x;j++){
            if(f[i][j]>=10){
                f[i][j+1]+=f[i][j]/10;
                f[i][j]%=10;
                if(f[i][x+1]>0) x++;
            }
        }
    }
    for(i=x;i>=1;i--){
        cout<<f[n][i];
    }
    return 0;
}

by Fated_Shadow @ 2023-06-26 14:55:35

看来 lz 已经过了(还是因为爆空间才过 MLE 了最后一个点)


by 114514u @ 2023-07-13 17:48:11

f[10010][10010]用 long long开数组,结果有可能会很大


|