hdu1018阶乘位数

来源:互联网 发布:mac鼠标能点右键吗 编辑:程序博客网 时间:2024/06/05 14:52

n!的位数=log10(1)+...+log(n);

n!=sqrt(2*π*n)*(n/e)^n;

代码如下:

#include <iostream>
#include <cmath>
using namespace std;
int main()
{
    int m,n;
    cin>>m;
    for(int i=0;i<m;i++)
    {
        cin>>n;
        double sum=0.5*log10(2*3.1415927*n)+n*log10(n/2.718281828459);
        cout<<(int)sum+1<<endl;
    }
    return 0;
}


0 0
原创粉丝点击