CODE[VS] 2552 阶乘位数

题目描述 Description

在很多软件中需要用到较大的整数。比如一些软件将大数用于数据安全传送的密匙或者密码编译等等。在这个问题中,你要根据给你的整数,算出这个数的阶乘的位数。 

 

输入描述 Input Description

输入文件包含若干行整数。第一行为n,表示有n组数据,接下来是n行,每行一个整数m. 

输出描述 Output Description

输出这些数的阶乘的位数。

 

样例输入 Sample Input

2

10

20

样例输出 Sample Output

7

19

 

数据范围及提示 Data Size & Hint

1≤m≤10^7.

 

表示十分羡慕,,,高考完的,

和今上午马上要中考完的孩子们。。。

 

表示我很想看电视。。。

 

听说今年流行紫色hhh。

 

这是个数学题,网上说是个什么斯特林定理好像是。。。

 

ac代码:

 

//输出这些数的阶乘的位数。
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
using namespace std;
const long double pi=3.1415926535897932384626433832795;
const long double e=2.71828182845904523536028747135266;

int n,m;

int stirling(int x)  //斯特林定理 
{
    int s=1;
    if(x>3)
        s=log10(2*pi*x)/2+x*log10(x/e)+1;
    return s;
}

int main()
{
    scanf("%d",&n);
    for(int i=1;i<=n;++i)
    {
        scanf("%d",&m);
        printf("%d\n",stirling(m));
    }
    return 0;
}

 

 


如果你不开心,那我就把右边这个zz大炸分享给你吧,
你看,他这么好看,跟个大傻子一样看着你,你还伤心吗?
真的!这照片盯上他五秒钟就想笑了。
一切都会过去的。
时间时间会给你答案2333

 

posted @ 2018-06-12 08:05  孟东行#  阅读(360)  评论(0编辑  收藏  举报