LightOJ - 1045 Digits of Factorial 数论,位数
求n! 在base进制下的位数。
10进制下 Log10(x) 就是x的位数。
base进制下同理。
记得开double
double pre[maxn]; void init() { pre[0] = log(1); for (int i = 1; i < maxn; i++) pre[i] = pre[i - 1] + log(i); } int main() { int T = readint(); init(); int kase = 1; while (T--) { int n = readint(); int base = readint(); double res = pre[n] / log(base) + 1; printf("Case %d: ", kase++); Put((int)res); puts(""); } }