其实是可以使用 long double 的
long double
long double ans = 1; for (int u = 0; u < k; u++) ans *= (check(u) + 1); printf("%.0Lf\n", ans - n);
事实上,浮点数输出 2n2^n2n 都是准确的