jia(ans,a,b)相当于ans=a+b;
输入输出都用%s输入。
#include
#include
#include
#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
#include
#include
#include
#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;
}