您的位置:首页 > 其它

高精度(加法)

2017-11-03 20:22 155 查看
#include<iostream>

#include<cstdio>

#include<cstring>

#include<algorithm>

using namespace std;

const int maxn=510;

char a[maxn],b[maxn];

int x[maxn],y[maxn],z[maxn];

int main(){

    memset(z,0,sizeof(z));

    memset(x,0,sizeof(x));

    memset(y,0,sizeof(y));  

    scanf("%s%s",a,b);

    int l1=strlen(a),l2=strlen(b);

    for(int i=1;i<=l1;i++) x[i]=a[l1-i]-'0';

    //for(int i=1;i<=l1;i++) cout<<x[i]<<' ';

    //cout<<endl;

    for(int i=1;i<=l2;i++) y[i]=b[l2-i]-'0';

    //for(int i=1;i<=l2;i++) cout<<y[i]<<' ';

    //cout<<endl;

    int l3=max(l1,l2),cur=0;

    for(int i=1;i<=l3;i++){

        z[i]+=x[i]+y[i];

        if(z[i]>=10){

            z[i+1]+=(z[i]/10);

            z[i]%=10;

        }

    }

    while(z[l3+1]){

        ++l3;

    }

    for(int i=l3;i>=1;i--) cout<<z[i];

    cout<<endl;

    return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: