问题标题: 洛谷:P1255 数楼梯

0
0
已解决
陈曦
陈曦
资深天翼
资深天翼

 题目传送门

90分代码

#include<iostream>
#include<cstring>
using namespace std;
const int MAXN=50005;
string x,y,f[50005];
int n,a[MAXN],b[MAXN],c[MAXN];
string Plus(string x,string y){
    memset(a,0,sizeof(a));
    memset(b,0,sizeof(b));
    memset(c,0,sizeof(c));
    string ans="";
    a[0]=x.size(),b[0]=y.size();
    c[0]=max(a[0],b[0]);
    for(int i=1;i<=a[0];i++)
        a[i]=x[a[0]-i]-'0';
    for(int i=1;i<=b[0];i++)
        b[i]=y[b[0]-i]-'0';
    int jw=0;
    for(int i=1;i<=c[0];i++){
        c[i]=a[i]+b[i]+jw;
        jw=c[i]/10;
        c[i]%=10;
    }
    if(jw!=0){
        c[++c[0]]++;
    }
    for(int i=c[0];i>=1;i--){
        ans=ans+char(c[i]+'0');
    }
    return ans;
}
int main(){
    cin>>n;
    f[1]="1",f[2]="2";
    for(int i=3;i<=n;i++){
        f[i]=Plus(f[i-1],f[i-2]);
    }
    cout<<f[n];
    return 0;
}

哪里错了


0
已采纳
汪恺恒
汪恺恒
中级启示者
中级启示者

要特判,如果n=0,输出0

0
0
0
我要回答