为什么编译错误?

P3811 【模板】模意义下的乘法逆元

代码: ```cpp #include <iostream> #include <cstdio> using namespace std; long long inv[20000528] = {0, 1}; long long GetInv(int, int); int main() { int n, p; scanf("%d %d", &n, &p); printf("1 \n"); for (int i = 2; i <= n;i++) { inv[i] = (long long)GetInv(p, i); printf("%lld\n", inv[i]); } return 0; } long long GetInv(int p, int i) { int ans = p - (p / i) * inv[p % i] % p; return ans; } ```
by Carey_chen @ 2022-03-22 20:53:52


emm, ~~long long 数组开太大~~
by a2lyaXNhbWUgbWFyaXNh @ 2022-03-22 20:55:43


@[Carey_chen](/user/516836) 大括号初始化数组导致编译的可执行文件过大。
by rxjdasiwzl @ 2022-03-22 20:56:12


@[Carey_chen](/user/516836) inv[20000528]数组开的内存过大
by GoldenBeach @ 2022-03-22 20:57:46


好的,AC了
by Carey_chen @ 2022-03-22 20:58:05


|