NYOJ——————数的长度(斯特林公式的应用)
数的长度
- 描述
-
N!阶乘是一个非常大的数,大家都知道计算公式是N!=N*(N-1)······*2*1.现在你的任务是计算出N!的位数有多少(十进制)?
- 输入
- 首行输入n,表示有多少组测试数据(n<10) 随后n行每行输入一组测试数据 N( 0 < N < 1000000 )
- 输出
- 对于每个数N,输出N!的(十进制)位数。
- 样例输入
-
3 1 3 32000
- 样例输出
-
1 1 130271
- 来源
- ACM教程
- 上传者
- rooot
此题的最佳解法为:斯特林解法何为斯特林,在下也不好说,是1730年前的一位数学家提出来的构想:
如何快速求出n!的位数呢? 数学上的公式为:
strlen(n!)=log10(√2*Π*n)+n*log10(n/e);
所以只需要将其转化为计算机上的公式即可:
其中Π=2*acos(0.0)或者Π=4*atan(1.0);
e=exp(1);
所以用计算机敲出来为: length=log10(sqrt(4*acos(0.0)*n))+n*log10(n/exp(1));
故代码如下:
#include<cstdio> #include<cmath> #include<iostream> using namespace std; int main() {int t,n;cin>>t;while(t--){scanf("%d",&n);int num=log10(sqrt(4.0*acos(0.0)*n))+n*log10(1.0*n/exp(1));printf("%d\n",num+1);}return 0; }
View Code
转载于:https://www.cnblogs.com/gongxijun/p/3210384.html
NYOJ——————数的长度(斯特林公式的应用)相关推荐
- 1846: 数的长度
1846: 数的长度 时间限制: 3 Sec 内存限制: 64 MB 提交: 40 解决: 33 您该题的状态:已完成 [提交][状态][讨论版] 题目描述 N!阶乘是一个非常大的数,大家都知道计 ...
- IOS根据文字计算laber的行数与长度
计算行数 CGFloat labelHeight = [self.content sizeThatFits:CGSizeMake(self.content.frame.size.width, MAXF ...
- Vue中input限制数字不能大于某个动态的数或者长度
例如要编辑已支付不能大于预估成本 <template slot-scope="{row}"><template v-if="row.rowEdit&qu ...
- LeetCode 2217. 找到指定长度的回文数
文章目录 一.题目 1.题目描述 2.基础框架 3.原题链接 二.解题报告 1.思路分析 2.时间复杂度 3.代码详解 三.本题小知识 四.加群须知 一.题目 1.题目描述 给你一个整数数组 qu ...
- MySQL中VARCHAR最大长度是多少?CHAR和VARCHAR有哪些区别?
以我多年经验来看,VARCHAR的最大长度.字符串类型选择,用MySQL的人中十之七八是不清楚的. 本文不止介绍了原理,还提供了案例手把手教你自己分析,彻底解决你的疑惑. 假设有个VARCHAR(64 ...
- Catalan数推导及应用
Catalan数的定义: 设表示用下面的方法把凸多边形区域分成三角形区域的方法数:在有n+1条边的凸多边形区域内通过插入在其中不相交的对角线而把它分成三角形区域.定义.则满足递推关系 这个递推 ...
- ARM立即数讲解--LDR和MOV的区别 .
Mov 是把立即数赋给一个寄存器,但对立即数的范围有要求.只能是由8bit连续有效位通过偶数次移位能得到的数.如果立即数超出这个范围,就没办法用一条MOV指令给寄存器赋值. LDR除了普通的读数之外, ...
- MQTT 固定报头 中 剩余长度字段的计算
剩余长度 - 简介 位置:固定报头中,从第2个字节开始. 剩余长度等于可变报头的长度(10字节)加上有效载荷的长度. 剩余长度(Remaining Length)表示当前报文剩余部分的字节数,包括可变 ...
- 第H题 输入N求N的阶乘的10进制表示的长度
输入N求N的阶乘的10进制表示的长度.例如6! = 720,长度为3. Input 输入N(1 <= N <= 10^6) Output 输出N的阶乘的长度 Sample Input 6 ...
- 【CCCC】L3-011 直捣黄龙 (30分),Dijkstra维护点权,节点数,路径条数等+路径打印
problem L3-011 直捣黄龙 (30分) 本题是一部战争大片 -- 你需要从己方大本营出发,一路攻城略地杀到敌方大本营.首先时间就是生命,所以你必须选择合适的路径,以最快的速度占领敌方大本营 ...
最新文章
- Python 操作 MongoDB 数据库!
- [摘录]第一部分 掌舵领航(3)
- 数组不能将数值传给int_[day day go]数组
- NumPy学习笔记之random.randn()函数
- EPLAN电气设计实例入门教程pdf
- Complete Internet Repair(电脑网络修复工具)官方中文版V6.0.3.5003 | 富有成效的电脑网络修复大师 | 电脑网络修复怎么修复?
- 第十六周助教工作总结——NWNU李泓毅
- 谢烟客---------Linux之用户
- 1899 用迭代法求平方根
- SimpleMemory博客园主题定制美化 配置
- ftp上传工具 免安装,ftp上传工具 免安装绿色破解版好用推荐
- RADARE2+FRIDA=R2FRIDA Best Dynamic Debugging Tool
- Java毕业设计-网上书城管理系统
- 机器学习入门视频总结
- 更新查询能用计算机,小黑盒怎么更新电脑配置 查成绩方法
- python爬虫之b站视频下载(python学习笔记)
- 2020 mse 清华_2020年的北大清华在世界上属于什么水平?
- 计算机应用技术课程本科,1101001《计算机应用技术I》课程教学大纲(共本科2009级用).doc...
- nodeJS 网页支付
- SQL的CTE递归查询