第一组数据:
123
321
本地输出没问题,但洛谷评测WA
#include <iostream>
#include <cstdio>
using namespace std;
const int N = 100000;
int n = 0, m = 0, cnt = 0;
int a[N], b[N], c[N];
char ch;
void add()
{
while (n + m > 0)
{
if (n == 0)
{
c[++cnt] += b[m--];
continue;
}
if (m == 0)
{
c[++cnt] += a[n--];
continue;
}
c[cnt + 2] += (a[n] + b[m]) / 10;
c[++cnt] += (a[n--] + b[m--]) % 10;
}
for (int i = 1; i <= cnt; ++i)
{
a[i + 1] += a[i] / 10;
a[i] %= 10;
}
}
int main()
{
// freopen("P1601_1.in", "r", stdin);
while (1)
{
scanf("%c", &ch);
if (ch == '\n')
break;
a[++n] = ch - '0';
}
while (1)
{
scanf("%c", &ch);
if (ch == '\n')
break;
b[++m] = ch - '0';
}
add();
if (c[cnt + 1])
printf("%d", c[cnt + 1]);
for (int i = cnt; i >= 1; --i)
{
printf("%d", c[i]);
}
printf("\n");
// fclose(stdin);
return 0;
}
感谢大佬友情相助