输入N求N的阶乘的10进制表示的长度。例如6! = 720,长度为3。

输入

第1行:一个数T,表示后面用作输入测试的数的数量。(1 <= T <= 1000)
第2 - T + 1行:每行1个数N。(1 <= N <= 10^9)

输出

共T行,输出对应的阶乘的长度。

输入样例

3
4
5
6

输出样例

2
3
3 对于n来说,要是求阶乘的话数据范围需要达到10^9以上才可以使用斯特林公式,否则会精度损失,造成误差比较大。
但是要是求的是n的阶乘的长度的话,可以利用公式((log10(2*PI*n))/2+n*(log10(n/e))+1),但是直接让计算机去求对数即lgN!+1这个好像是不对的,我用了
(ll)((log10(sqrt(2*PI*n*1.00))*pow(n/e,n))+1))运行都是错的,所以求长度还是用第一个,自己求好对数再让计算机去运行吧
 #include<stdio.h>
#include<string.h>
#include<cmath>
using namespace std;
const double PI=3.1415926535898;
const double e=2.718281828459;
typedef long long ll; int main()
{
int tt,n;
scanf("%d",&tt);
while(tt--)
{
scanf("%d",&n);
printf("%lld\n",(ll)((log10(2*PI*n))/2+n*(log10(n/e))+1));//注意是long long,int的话会WA
}
return ;
}
 

51nod-1130-N的阶乘的长度V2(斯特林近似)-套斯特林公式的更多相关文章

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

    输入N求N的阶乘的10进制表示的长度.例如6! = 720,长度为3.   Input 第1行:一个数T,表示后面用作输入测试的数的数量.(1 <= T <= 1000) 第2 - T + ...

  2. 1130 N的阶乘的长度 V2(斯特林近似)

    1130 N的阶乘的长度 V2(斯特林近似) 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题  收藏  关注 输入N求N的阶乘的10进制表示的长度.例如6! = 720, ...

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

    输入N求N的阶乘的10进制表示的长度.例如6! = 720,长度为3.   Input 第1行:一个数T,表示后面用作输入测试的数的数量.(1 <= T <= 1000) 第2 - T + ...

  4. 【51NOD-0】1130 N的阶乘的长度 V2(斯特林近似)

    [算法]数学 [题解]斯特林公式: #include<cstdio> #include<algorithm> #include<cmath> using names ...

  5. 51Nod 1058 N的阶乘的长度

    输入N求N的阶乘的10进制表示的长度.例如6! = 720,长度为3.   Input 输入N(1 <= N <= 10^6) Output 输出N的阶乘的长度 Input示例 6 Out ...

  6. 51nod 1058 N的阶乘的长度 位数公式

    1058 N的阶乘的长度基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 收藏 关注输入N求N的阶乘的10进制表示的长度.例如6! = 720,长度为3.Input输入N( ...

  7. (斯特林公式)51NOD 1058 N的阶乘的长度

    输入N求N的阶乘的10进制表示的长度.例如6! = 720,长度为3.   Input 输入N(1 <= N <= 10^6) Output 输出N的阶乘的长度 Input示例 6 Out ...

  8. N的阶乘的长度 V2(斯特林近似) 求 某个大数的阶乘的位数 .

    求某个大数的阶乘的位数 . 得到的值  需要 +1 得到真正的位数 斯特林公式在理论和应用上都具有重要的价值,对于概率论的发展也有着重大的意义.在数学分析中,大多都是利用Г函数.级数和含参变量的积分等 ...

  9. 51Nod 1058: N的阶乘的长度(斯特林公式)

    1058 N的阶乘的长度  基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题  收藏  关注 输入N求N的阶乘的10进制表示的长度.例如6! = 720,长度为3. Inp ...

随机推荐

  1. Jenkins忘记 admin 密码

    进入 jenkins home(我的是/var/jenkins_home)路径下的users 文件夹 cd /var/jenkins_home/users sudo vim admin/config. ...

  2. openwrt usb

    fdisk -l #以列表的形式,列出当前挂载盘的情况 for 属性规定 label 与哪个表单元素绑定 <form> <label for="male"> ...

  3. 43. 守护线程 和 join方法

    1.守护线程(后台线程):            我们在使用一款软件的时候,有的软件会让我们在不知道的情况下下载一些东西,那么这个就是后台线程.            一般用于提高软件的下载量(也就是 ...

  4. leetcood学习笔记-118-杨辉三角

    题目描述: 第一次提交: class Solution: def generate(self, numRows: int): l = [] for i in range(numRows): n = [ ...

  5. CSS盒模型及应用

    其实,CSS就三个大模块: 盒子模型 . 浮动 . 定位,其余的都是细节.要求这三部分,无论如何也要学的非常精通. 所谓盒子模型就是把HTML页面中的元素看作是一个矩形的盒子,也就是一个盛装内容的容器 ...

  6. NX二次开发-UFUN创建倒角UF_MODL_create_chamfer

    NX9+VS2012 #include <uf.h> #include <uf_modl.h> UF_initialize(); //创建块 UF_FEATURE_SIGN S ...

  7. kma 2019CSP前刷题记录

    2019/10/25 \([LNOI2014]\ LCA\) \([Luogu\ P2774]\) 方格取数问题 \(Gauss\)消元板 \([JSOI2008]\)球形空间产生器 2019/10/ ...

  8. Django中的HttpResponse和JsonResponse

    Django中的HttpResponse和JsonResponse 我们在编写一些借口函数的时候,经常需要给调用者返回json格式的数据,那么如何返回可直接解析的数据呢? 首先第一种方式: from ...

  9. MySQL数据库迁移详细步骤

    转载自:http://sofar.blog.51cto.com/353572/1598364 ===================================================== ...

  10. scp 传输下载

    利用scp传输文件 1.从服务器下载文件 scp username@servername:/path/filename /tmp/local_destination 例如scp codinglog@1 ...