Sicily - 1159 大数加法

#include <cstdio>
#include <iostream> 
#include <cstring>
#include <algorithm>
using namespace std;

// http://soj.sysu.edu.cn/1159

string a, b;

void add(string& a, string& b)
{
    if(a.size() < b.size())    swap(a,b);
    int sum = 0;
    for(int i=a.size()-1, j=b.size()-1; i>=0; i--, j--) {
        sum += a[i]-'0';
        if(j>=0)    sum += b[j]-'0';
        a[i] = sum%10+'0';
        sum /= 10; 
    }
    if(sum)    a = '1' + a; 
}

int main ()
{
    int n;
    while(cin >> n) {
        cin >> a;
        for(int i=1; i<n; i++) {
            cin >> b;
            add(a, b);
        }
        cout << a << endl;
    }
    
    return 0;    
}

 

posted on 2016-03-21 22:18  SuperChan  阅读(133)  评论(0编辑  收藏  举报

导航