计算n!的位数。
Input
多组数据输入,每次输入一个自然数n,n<=10^9
Output
n!的位数
Sample Input
Raw
10
20
Sample Output
Raw
7
19
解题思路:1.斯特林近似
2.n的位数=lg(n)+1;
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n;
while(~scanf("%d",&n))
{
if(n==0)
{
printf("1\n");
continue;
}
double ans=log10(sqrt(2*acos(-1.0)*n))+n*log10(n/exp(1.0));
printf("%d\n",(int)ans+1);
}
return 0;
}