jia(ans,a,b)相当于ans=a+b;
输入输出都用%s输入。
#include<cstdio>
#include<cstring>
#include<map>
#define bit 1000
using namespace std;
int kase = 0;
int jia(char ans[], char a1[], char b1[])
{
int a[bit], b[bit], c[bit];
int lena, lenb, lenc, i, x;
memset(a, 0, sizeof(a));
memset(b, 0, sizeof(b));
memset(c, 0, sizeof(c));
lena = strlen(a1);
lenb = strlen(b1);
for (i = 0; i <= lena - 1; i++)
a[lena - i] = a1[i] - 48;
for (i = 0; i <= lenb - 1; i++)
b[lenb - i] = b1[i] - 48;
lenc = 1; x = 0;
while (lenc <= lena || lenc <= lenb)
{
c[lenc] = a[lenc] + b[lenc] + x;
x = c[lenc] / 10;
c[lenc] %= 10;
lenc++;
}
c[lenc] = x;
if (c[lenc] == 0)
lenc--;
int top = 0;
for (i = lenc; i >= 1; i--)
ans[top++] = c[i] + '0';
ans[top] = '\0';
return 0;
}
string版,区别不大。
#include<cstdio>
#include<cstring>
#include<string>
#include<map>
#define bit 1000
using namespace std;
int kase = 0;
int jia(string ans, string a1, string b1)
{
int a[bit], b[bit], c[bit];
int lena, lenb, lenc, i, x;
memset(a, 0, sizeof(a));
memset(b, 0, sizeof(b));
memset(c, 0, sizeof(c));
lena = a1.length();
lenb = b1.length();
for (i = 0; i <= lena - 1; i++)
a[lena - i] = a1[i] - 48;
for (i = 0; i <= lenb - 1; i++)
b[lenb - i] = b1[i] - 48;
lenc = 1; x = 0;
while (lenc <= lena || lenc <= lenb)
{
c[lenc] = a[lenc] + b[lenc] + x;
x = c[lenc] / 10;
c[lenc] %= 10;
lenc++;
}
c[lenc] = x;
if (c[lenc] == 0)
lenc--;
int top = 0;
for (i = lenc; i >= 1; i--)
ans[top++] = c[i] + '0';
ans[top] = '\0';
return 0;
}