大数处理 加法

#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include  
using namespace std;

int Max(int x, int y);

string s1, s2;
int s[520];
int i,j;


int main ()
{
    cin >> s1 >> s2;
    memset(s,0,sizeof(s));
    int lena=s1.length();
    int lenb=s2.length();
    int len=Max(lena,lenb)+5;
    reverse(s1.begin(),s1.end());//把s1,s2反一下,从个位开始读数
    reverse(s2.begin(),s2.end());
    int t=0, sum=0, a=0, b=0;
    for(i=0; i     {
        if(lena>i)
            a=s1[i]-'0';
        else 
            a=0;
        if(lenb>i)
            b=s2[i]-'0';
        else 
            b=0;
        sum=a+b+t;//加法运算
        t=sum/10;
        s[i]=sum%10;
    }
    for(j=len-1;j>-1&&!s[j]; j--)
        ;
    for(; j>-1; j--)
        cout << s[j];
    cout << endl;
}

int Max(int x, int y)//返回最大值
{
    return x>y? x : y;
}

你可能感兴趣的:(ACM笔记)