问题标题: 酷町堂:2956

0
0
已解决
李锦昊
李锦昊
中级天翼
中级天翼

90分求解

代码

#include<bits/stdc++.h>
using namespace std;
char x[120000];
int s,n,sum,a[120000],b[120000];
string s1,s2;
int main() {
    cin>>n;
    s1="1";
    s2="2";
    for(int j=2; j<n; j++) {
        memset(a,0,sizeof(a));
        memset(b,0,sizeof(b));
        a[0]=s1.size();
        b[0]=s2.size();
        for(int i=1; i<=a[0]; i++) {
            a[i]=s1[a[0]-i]-'0';
        }
        for(int i=1; i<=b[0]; i++) {
            b[i]=s2[b[0]-i]-'0';
        }
        sum=max(a[0],b[0]);
        for(int i=1; i<=sum; i++) {
            a[i]+=b[i];
            a[i+1]+=a[i]/10;
            a[i]%=10;
        }
        sum++;
        while((a[sum]==0)&&(sum>1)) {
            sum--;
        }
        s=0;
        for(int i=sum; i>=1; i--) {
            x[s]=a[i]+'0';
            s++;
        }
        s1=s2;
        s2=x;
    }
    cout<<s2<<endl;
    return 0;
}

 


0
已采纳
王文博
王文博
缔造者之神
缔造者之神

测试点一:

输入:

5 8 0

3 5 4

1 3 0

6 2 0

输出:

0 38 7 16

0
王文博
王文博
缔造者之神
缔造者之神

数据点6:

输入1

输出1

望采纳!(我也错在了这个地方,这题和1083就差这一个地方)

0
李奕歌
李奕歌
初级天翼
初级天翼

cin>>n;

后面加

if(n==1){
        cout<<1;
        return 0;
    }

 

0
我要回答