51NOD-01058 N的阶乘的长度

Posted ONION_CYC

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了51NOD-01058 N的阶乘的长度相关的知识,希望对你有一定的参考价值。

【算法】数学

【题解】n!的位数相当于ans=log10(n!)上取整,然后就可以拆出来加了。

可以用log10(i)或log(i)/log(10)

阶乘好像有个斯特林公式……

技术分享
#include<cstdio>
#include<cmath>
using namespace std;
int main()
{
    int n;
    scanf("%d",&n);
    long double ans=0;
    for(int i=1;i<=n;i++)ans+=log10(i);
    printf("%d",((int)ans)+1);
    return 0;
}
View Code

 

以上是关于51NOD-01058 N的阶乘的长度的主要内容,如果未能解决你的问题,请参考以下文章

1058 N的阶乘的长度(51NOD基础题)

51Nod 1058 N的阶乘的长度

51nod 1058 N的阶乘的长度 (非暴力)

51nod 1130 N的阶乘的长度 V2(斯特林近似)

51nod 1130 N的阶乘的长度 V2(斯特林近似)

51nod 1130 N的阶乘的长度(斯特林近似)