n!的位数

1166: 阶乘问题(一) [数学]

时间限制: 1 Sec  内存限制: 128 MB

提交: 52  解决: 21  统计

题目描述

小H对阶乘!很感兴趣。现在他想知道N!N!的位数,由于NN太大了,所以请了你这个BestCoder来帮忙。

输入

第一行输入一个整数TT,代表有TT组测试数据。

每组数据输入一个整数NN

注:1<=T<=10,1<=N<=21061<=T<=10,1<=N<=2∗106

输出

对每组数据,输出N!N!的位数。

样例输入

2
100
1000

样例输出

158
2568

这道题其实原理很简单,就是利用斯特灵公式来计算n!的位数


我们两边取10的对数,我们知道lg10=1,lg100=2,其实你也猜到了,没错,lg可以用来计算数的位数,那么lgn!也就是答案

因此我们得到了斯特林公式:

n!的位数_第1张图片

#include
#include
#include
using namespace std;
int main()
{
    long long n,t;
    cin>>t;
    while(t--)
    {
        cin>>n;
        if(n==1) cout<<"1"<

你可能感兴趣的:(ACM,OJ--HPU,数论--数学)