C++
 
#include <string>
#include 
<iostream>
using namespace std;

#define MAX 200

unsigned 
int num[MAX+10];
unsigned 
int num1[MAX+10];

int main()
{
    
string str1,str2;
    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";
    }

    
return 0;
}
 
 
 
 
c
 
 
int add(int l1,int l2,int a1[101],int a2[101],int c[101])
{//计算a1与a2的和,结果可在到c中,并返回c的长度
 int i;
 int len;
 int k=0;//进位
 if(l1<l2)len=l1;
 else len=l2;
 for(i=0;i<len;i++)
 {
  c[i]=(a1[i]+a2[i]+k)%10;
  k=(a1[i]+a2[i]+k)/10;
 }
 if(l1>len)
 {
  for(i=len;i<l1;i++)
  {
   c[i]=(a1[i]+k)%10;
   k=(a1[i]+k)/10;   
  }
  if(k!=0)
  {
   c[l1]=k;
   len=l1+1;
  }
  else len=l1;
 }
 else
 {
  for(i=len;i<l2;i++)
  {
   c[i]=(a2[i]+k)%10;
   k=(a2[i]+k)/10;   
  }
  if(k!=0)
  {
   c[l2]=k;
   len=l2+1;
  }
  else len=l2;
 }
 return len;