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 ;
}
#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;
{//计算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;
转载于:https://blog.51cto.com/merry/137837