吸氧全TLE求解
查看原帖
吸氧全TLE求解
800884
Weekoder楼主2024/6/6 16:30

代码:

#include <bits/stdc++.h>

#define int long long

using namespace std;

const int N = 5005;

struct Bigint {
    int a[N], len;
    Bigint(string s) {
        memset(a, 0, sizeof a);
        len = s.size();
        for (int i = 1; i <= len; i++) a[i] = s[len - i] - '0';
    }    
    Bigint() {}
    int &operator [] (int i) {
        return a[i];
    }
    void flatten(int L) {
        len = L;
        for (int i = 1; i <= len; i++)
            a[i + 1] += a[i] / 10, a[i] %= 10;
        while (len > 1 && !a[len]) len--;
    }
    void print() {
        while (len > 1 && !a[len]) len--;
        for (int i = len; i >= 1; i--)
            cout << a[i];
        cout << "\n";
    }
};

Bigint operator / (Bigint a, int b) {
    Bigint c("0");
    int d = 0;
    for (int i = a.len; i >= 1; i--) {
        c[i] = (d * 10 + a[i]) / b;
        d = (d * 10 + a[i]) % b;
    } 
    c.flatten(5005);   
    return c;
}

signed main() {
    string s; int B;
    cin >> s >> B;
    Bigint a(s);
    a = a / B;
    a.print();
    return 0;
}
2024/6/6 16:30
加载中...