View Code of Problem 3497

#include <iostream>
#include <string>
#include <cstring>
using namespace std;

int main(){
    char a[1000],b[1000],c[1000];
    while(cin>>a>>b>>c){
        int d[1000],e[1000],f[1000];
        int sum[1000];
        int n1,n2,n3;
        int i,j,k;
        memset(d,0,sizeof(d));
        memset(e,0,sizeof(e));
        memset(f,0,sizeof(f));
        n1=strlen(a);
        n2 =strlen(b);
        n3=strlen(c);
        for(i=0,j=n1-1;i<n1;i++,j--){
                d[j]=a[i]-'0';//反向加?
        }
        for(i=0,j=n2-1;i<n2;i++,j--){
            e[j]=b[i]-'0';
        }
        for(i=0,j=n3-1;i<n3;i++,j--){
            f[j]=c[i]-'0';
        }
        for(j=0;j<97;j++){
            int nxt=0;
            for(i=0;i<1000;i++){
                sum[i]=d[i]+e[i]+f[i]+nxt;
                nxt=sum[i]/10;
                sum[i]=sum[i]%10;
            }
            for(i=0;i<1000;i++){
                d[i]=e[i];
                e[i]=f[i];
                f[i]=sum[i];
            }
        }
        int z=0;
        if(n1=1&&n2==1&&n3==1&&a[0]=='0'&&b[0]=='0'&&c[0]=='0'){
            cout<<"0";
        }
        for(i=1000-1;i>=0;i--){
            if(sum[i]==0&&z==0){
                continue;
            }else{
                cout<<sum[i];
                z=1;
            }
        }
        cout<<endl;
    }
    return 0;
}

Double click to view unformatted code.


Back to problem 3497