/***************
Problem from :ds
Problem describe :
给定n, 求n的阶乘的位数
样例:
input output
10 7
20 19
data:2016.12.1
****************/
#include<iostream>
#include<cstdlib>
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<map>
#include<stack>
#include<queue>
#include<ctime>
#include<cstring>
#include<vector>
#include<string>
#define ll __int64
#define inf 0x3f3f3f3f3f
using namespace std;
int main()
{
// freopen("in.txt","r",stdin);
// freopen("out.txt","w",stdout);
// n! ≈10 ^ m 求m
// 可转化成 m = lg(n!) = lg1 + lg2 + ... +lgn;
// 调用math库中的 log
int i, n;
//至少是一位数 而且 lg1 lg2 lg3 <1;
while(~scanf("%d", &n))
{
double ans=1;
for(i=1; i<=n; i++) ans+=log10(i);
printf("%d\n", (int)ans);
}
return 0;
}
ds 1.1 单身狗的进化
最新推荐文章于 2019-07-01 11:07:02 发布