Big Number 题意:求n!的位数。 分析:n(1 ≤ n ≤10^7),n很大,直接求麻烦。精确位数:sum = log10(1)+log10(2)+....log10(n-1)+log10(n). #include <stdio.h> #include <math.h> int main() { //freopen("input.txt","r",stdin); int n,i,cases; double sum; while(scanf("%d",&cases)!=EOF) { while(cases) { cases--; sum=1; scanf("%d",&n); for(i=1;i<=n;i++) { sum+=log10(i); //循环把精确位数加起来 } printf("%d/n",(int)sum); } } return 0; }