样例没过,求调
查看原帖
样例没过,求调
1528563
lyt_tcsn楼主2025/1/13 22:18
#include <bits/stdc++.h>
#define N 10005
using namespace std;

struct bigint {
    int a[N];
    int n = 0;
    bigint(int x = 0) {
        if (x == 0) {
            a[n++] = 0;
        } else {
            while (x) {
                a[n++] = x % 10;
                x /= 10;
            }
        }
    }
    int& operator[] (int i) { return a[i]; }
    void flatten(int len) {
        n = len;
        for (int i = 0; i < n; i++) {
            a[i + 1] += a[i] / 10;  a[i] %= 10;
        }
        while (!a[n]) n--;
    }
};
bigint operator* (bigint& bi, int x) {
    bigint ans;
    int len = bi.n;
    for (int i = 0; i < len; i++) {
        ans[i] = bi[i] * x;
    }
    ans.flatten(len + 11);
    return ans;
}
int main() {
    int t;
    cin >> t;
    while (t--) {
        int n, a;
        cin >> n >> a;
        bigint fac(1);
        for (int i = 1; i <= n; i++) {
            fac = fac * i;
        }
        int cnt = 0;
        for (int i = 0; i < fac.n; i++) {
            if (fac[i] == a) cnt++;
        }
        cout << cnt << endl;
    }
    return 0;
}
2025/1/13 22:18
加载中...