社区讨论

评测机有毒

P1601高精度加法参与者 1已保存回复 2

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
2 条
当前快照
1 份
快照标识符
@mi6mb7gs
此快照首次捕获于
2025/11/20 07:12
4 个月前
此快照最后确认于
2025/11/20 07:12
4 个月前
查看原帖
全WA爆零,但是下数据在本地跑是没问题的(第一组就是123+123=246啊),随手滚键盘造几组数据用py验也没问题。
CPP
#include <iostream>
#include <vector>
#include <cstdio>
using namespace std;
typedef vector<int> bignum;
void scan(vector<int> &x)
{
    char c;
    while(!isdigit(c = getchar()));
    x.clear();
    do
        x.push_back(c - '0');
    while(isdigit(c = getchar()));
    for (int i = 0, j = x.size() - 1; i <= j; i++, j--)
        swap(x[i], x[j]);
}
bignum add(const bignum &x, const bignum &y)
{
    bignum z;
    int push, bit, i;
    for (i = 0; i < max(x.size(), y.size()); i++)
    {
        bit = push;
        if (i < x.size())
            bit += x[i];
        if (i < y.size())
            bit += y[i];
        z.push_back(bit % 10);
        push = bit / 10;
    }
    if (push)
        z.push_back(push);
    return z;
}
void print(const bignum &x)
{
    for (int i = x.size() - 1; i >= 0; i--)
        cout << x[i];
}
bignum x, y, z;
int main()
{
    scan(x), scan(y);
    print(add(x, y));
    return 0;
}

回复

2 条回复,欢迎继续交流。

正在加载回复...