为什么取模了反而会错?
查看原帖
为什么取模了反而会错?
970336
MagicLyney_06楼主2023/10/27 15:12
/**
 * @Author: lndff
 * @Date: 2023/10/27 14:22:55
 * @LastEditors: lndff
 * @LastEditTime: 2023/10/27 14:22:55
 * Description: 
 * Copyright: Copyright (©)}) 2023 lndff. All rights reserved.
 */
#include <bits/stdc++.h>
using namespace std;

#define int long long
#define LL long long

const int MOD = 1e7 + 10;
int ksm(int a, int p){
    int temp = 1;
    while(p){
        if (p & 1)
        temp = (1ll * temp * a) % MOD;
        p >>= 1;
        a = (1ll * a * a) % MOD;
    }
    return temp;
};
int n, f[100], tot, ans = 1;
signed main(){
    freopen("P4317.in","r",stdin);
    freopen("P4317.out","w",stdout);
    cin >> n;
    for (int i = 49; i >= 0; i--){
        for (int j = 49; j > 0; j--){
            f[j] = (1ll * f[j] + 1ll * f[j - 1]) % MOD;
        }
        if ((n >> i) & 1) ++f[tot++];
    }
    ++f[tot];
    for (int i = 1; i <= 49; i++){
        ans = (1ll * ans * (LL)ksm(i, f[i])) % MOD;
    }
    cout << ans;
}

其中40行f[j] = (1ll * f[j] + 1ll * f[j - 1]) % MOD;取了模会报错, 删掉%MOD反而全A了, 请问是为什么啊

2023/10/27 15:12
加载中...