#define MAX_LENGTH 10000
void add(char * a, char * b, char res[])
{
int result[MAX_LENGTH + 1] = {0};
int t1[MAX_LENGTH] = {0};
int t2[MAX_LENGTH] = {0};
int len1= strlen(a);
int len2= strlen(b);
int len ;
if (len1 > len2)
{
len = len1;
}
else
{
len = len2;
}
for(int i = 0, j = len1 - 1; j >= 0; i++, j--)
{
t1[i] = a[j] - '0';
}
for (int i = 0, j = len2 - 1; j >= 0; i++, j--)
{
t2[i] = b[j] - '0';
}
for(int i=0; i < len; i++)
{
result[i] += t1[i] + t2[i];
if (result[i] > 9)
{
result[i+1]++;
result[i]-=10;
}
}
if (result[len] > 0)
{
len++;
}
for(int i = len - 1, j = 0; i >= 0; i--,j++)
{
res[j] = result[i] + '0';
}
}
使用:
char res[MAX_LENGTH + 1] = {'0'};
add(n1, n2, res);