PKU 1423-Big Number
問題概要
n!の桁数を求めよ
解法
ある数値Nの桁数はlog10N +1で求まる.また,log内でのかけ算は足し算に直すことが出来るので,それを用いて10^7までの解を全て求めておく.
実装(C)
#include <stdio.h> #include <stdlib.h> #include <math.h> int res[10000000]; int main(n) { int i; double t=log10(1); for(i=1;i<=10000000;i++){ t+=log10(i); res[i]=(int)t+1; } for(scanf("%d",&n);~scanf("%d",&n);){ printf("%d\n",res[n]); } return 0; }