大数求和

来源:互联网 发布:工信部大数据行动 编辑:程序博客网 时间:2024/05/20 00:17

#include <string>
#include <iostream>
#include <cstring>
#define MAX 1000
using namespace std;
unsigned int num[MAX+10];
unsigned int num1[MAX+10];
int main()
{
    string str1,str2;
    while(cin>>str1>>str2)
    {
        memset(num,0,sizeof(num));
        memset(num1,0,sizeof(num1));
        int len=str1.length();
        int index=0;
        for(int i=len-1;i>=0;i--)
        {
            num[index++] = str1[i]-'0';
        }
        len=str2.length();
        index=0;
        for (int i=len-1;i>=0;i--)
        {
            num1[index++] = str2[i]-'0';
        }
        len = str1.length()>str2.length()?str1.length():str2.length();

        for(int i=0;i<len;i++)
        {
            num[i]+=num1[i];
            if(num[i]>=10)
            {
                num[i]-=10;
                num[i+1]++;
            }
        }
        bool flag = false;
        for(int i=len;i>=0;i--)
        {
            if (flag||num[i])
            {
                flag = true;
                cout<<num[i];
            }
        }
        if (!flag)
        {
            cout<<"0";
        }
        cout<<endl;
    }
    return 0;
}