大家帮忙看一下,为什么只得50分?

P1255 数楼梯

B2214shengmin @ 2022-06-26 21:59:58

#include<bits/stdc++.h>
using namespace std;
long long fbnqsl(int x){
    if(x==1)return 1;
    else if(x==2)return 2;
    else return fbnqsl(x-1)+fbnqsl(x-2);
}
int main() {
    int k;
    cin>>k;
    cout<<fbnqsl(k);
    return 0;
} 

by B2214shengmin @ 2022-06-26 22:06:08

@rzh123 ```

include<bits/stdc++.h>

using namespace std; int int1[1010],int2[1010],c[1010]; char str1[1010],str2[1010]; void init(char a[],int *b){ int l=strlen(a); for(int i=0;i<l;i++){ b[i]=a[l-i-1]-'0'; } } void sum_hp(char a[],char b[]){ init(a,int1); init(b,int2); memset(c,0,sizeof(c)); int i,l=max(strlen(a),strlen(b)); for(i=0;i<l;i++){ c[i]=int1[i]+int2[i]+c[i]; if(c[i]>9){ c[i]-=10; c[i+1]++; } } if(c[i]>0){ for(int j=l;j>=0;j--){ cout<<c[j]; } }else{ for(int j=l-1;j>=0;j--){ cout<<c[j]; } } } int main() { while(scanf("%s%s",str1,str2)==2){ memset(int1,0,sizeof(int2)); memset(int2,0,sizeof(int1)); sum_hp(str1,str2); cout<<endl; } return 0;
}


by B2214shengmin @ 2022-06-26 22:08:18

@rzh123 上面哪个是https://www.luogu.com.cn/problem/P1601 的程序


by _Ad_Astra_ @ 2022-06-26 22:43:22

@B2214shengmin 望丰展使Md、TeX(你谷更新了)


by ssytxy2024 @ 2022-06-26 22:53:37

@B2214shengmin 意思是你要先学高精度加法


by B2214shengmin @ 2022-06-26 22:59:50

@qlzx74lyc41 e.....我学过了[尴尬]


by B2214shengmin @ 2022-06-28 21:58:58

@rzh123 为什么用高精计算不会输出?

#include<bits/stdc++.h>
using namespace std;
int int1[1010],c[1010],len_;
char str1[1010];
/*int fbnqsl(int x){
    if(x==1)return 1;
    else if(x==2)return 2;
    else return fbnqsl(x-1)+fbnqsl(x-2);
}*/
void init(char a[],int *b){
    int l=strlen(a);
    for(int i=0;i<l;i++){
        b[i]=a[l-i-1]-'0'; 
    }
}
void sum_hp(char a[],char k){//a+b 顺加输出 
    init(a,int1);//把a字符串传入init,转化成int1数组 
    memset(c,0,sizeof(c));//c数组清零
    int i,l=strlen(a);//l为a字符串的长度
    for(i=0;i<l;i++){//a+k 
        c[i]+=int1[i]+k;
        if(c[i]>9){//判断是否要进位 
            c[i]-=10;//把个位留下来 
            c[i+1]++;//进位 
        }
    }
    if(c[i]>0){
        len_=l;
    }else{//从l-1位输出 
        len_=l-1;
    }
}
int main() {
    int q=3;
    cin>>str1;
    memset(int1,0,sizeof(int1));
    if(str1=="1"){
        cout<<1;
        return 0;
    }else if(str1=="2"){
        cout<<2;
        return 0;
    }
    for(int i=3;i<=q;i++){
        sum_hp(str1,q);
        q++;
        //cout<<endl;
    }
    for(int i=len_;i>=0;i++)cout<<c[i]; 
    return 0;
} 

上一页 |