怎么string没有输出

P1255 数楼梯

3_14 @ 2024-03-05 20:57:54

我的代码:(为什么没有输出,高精函数(应该)没有问题)

#include<bits/stdc++.h>
using namespace std;
const int MAX=1111;
string add(string A,string B){
    string ANS="";
    int len1=A.size(),len2=B.size(),n1[MAX]={0},n2[MAX]={0},ans[MAX]={0};
    for(int i=0;i<len1;i++)n1[len1-1-i]=A[i]-'0';
    for(int i=0;i<len2;i++)n2[len2-1-i]=B[i]-'0';
    int k=0,mlen=max(len1,len2);
    for(int i=0;i<mlen;i++){
        ans[i]=k+n1[i]+n2[i];
        if(ans[i]>9){
            ANS=char(ans[i]%10+'0')+ANS;
            k=1;
        }else{
            k=0;
        }
    }
    if(k){
        ANS="1"+ANS;
    }
    return ANS;
}
int n;
string a="1",b="1",c;
int main(){
    cin>>n;
    for(int i=0;i<n;i++){
        c=add(a,b);
        a=b;
        b=c;
    }
    cout<<c;
    return 0;
}

by fish_love_cat @ 2024-03-05 21:15:28

乐,高精度函数错的,主函数也是错的


by fish_love_cat @ 2024-03-05 21:18:07

@3_14 主函数应该是这样的↓

int n;
string a="1",b="2",c;
int main(){
    cin>>n;
    if(n==1)cout<<1;
    else if(n==2)cout<<2;
    else{
    for(int i=2;i<n;i++){
        c=add(a,b);
        a=b;
        b=c;
    }
    cout<<c;}
    return 0;
}

by fish_love_cat @ 2024-03-05 21:18:46

高精加你去照着题解慢慢改吧


by 3_14 @ 2024-03-05 21:58:25


|