关于如何确定阶乘结果的位数呢,就是位数x可用由 10^(x-1)≤n!≤10^x,再取对数获得。
最开始做的时候想法很简单,就是用个循环,因为log(n!)=log1+log2+。。。。。。+logn,所以加起来就好了。结果一提交,就是 time limit exceeded。于是就上网上去查找计算阶乘的其他方法,就找到了斯特灵公式。之后就是在纸上演算怎么样才能把这个式子表示出来了。
#include<iostream>
#include<math.h>
using namespace std;
int main()
{
//N表示用户想输入几次,i为计数器
int N,i;
cin>>N;
double in;
double out;
for(i=0;i<N;i++)
{
cin>>in;
//斯特灵公式不适应1的情况,因此单独考虑
if(in==1)
cout<<1<<endl;
else
{
//这就是斯特灵公式,“n!≈sqrt(2πn)(n/e)^n”
//而求阶乘结果的位数x可用由 10^(x-1)≤n!≤10^x,再取对数获得。
//因此利用log的性质写出了下面的式子
//acos为反余弦,2*acos(0.0)为π
//exp(1.0)是为了得到e,这个式子就是e^1
out=(log10(sqrt(4*acos(0.0)*in))+in*(log10(in)-log10(exp(1.0))))+1;
cout<<(int)out<<endl;
}
}
return 0;
}
本文出自 “wing学习之路” 博客,请务必保留此出处http://wingstudy.blog.51cto.com/1655658/323851
分享到:
相关推荐
pku acm 1423 Big Number代码 求n!的位数
2021年3月最新北大中心核心目录,中文核心期刊要目总览(2021年版)(北京大学图书馆).pdf
1、数据来源:北京大学数字金融中心 2、时间跨度:2011-2020年 3、区域范围:全国 4、指标说明: 其中县级数据从2014年开始,北大数字普惠金融研究院在2014年的时候只计算了1754个县的数据,所以拿到资料的小伙伴...
高等代数\+北京大学高等代数\+北京大学高等代数\+北京大学高等代数\+北京大学高等代数\+北京大学高等代数\+北京大学高等代数\+北京大学高等代数\+北京大学高等代数\+北京大学高等代数\+北京大学高等代数\+北京大学...
北京大学数字普惠金融指数
2019年北京大学寒假学堂测试(面向高中学生)数学试卷及答案(20211021012105).pdf
北大考博辅导:北京大学环境科学与工程(环境健康)考博难度解析及经验分享.pdf北大考博辅导:北京大学环境科学与工程(环境健康)考博难度解析及经验分享.pdf北大考博辅导:北京大学环境科学与工程(环境健康)考博难度...
高等代数课本北大版高等代数课高等代数课本北大版本北大版
北京大学-概率论与数理统计练习题(公共)答案大合集.pdf
北京大学的PPT,主要提供给大家一种制作PPT的模板,学习一下人家是怎么使用的PPT软件。
北京大学 地理信息系统概论专业课 真题 两年,但是不知道具体时间。
对于ACMer特别有用的东西,初学者特别适合,有需要其他知名大学OJ题目分类的,可以直接联系我。邮箱:514103008@qq.com
北京大学《高等代数I》期中试卷(含答案)
北京大学高等代数答案北京大学高等代数答案北京大学高等代数答案北京大学高等代数答案北京大学高等代数答案北京大学高等代数答案北京大学高等代数答案北京大学高等代数答案北京大学高等代数答案
ACM题解 训练指南 北大ACM题解 北大ACM训练指南 北大ACM题解训练指南 北京大学ACM题目 源代码 POJ源代码 POJ做指南
html结课作业,仿北京大学官网,需要实验报告的点这:https://download.csdn.net/download/weixin_44771551/12524589
PCB板缺陷检测数据集(北京大学693数据增强,6930)
《概率论与数理统计》——————北京大学出版社 21世纪全国高校应用人才培养基础课规划教材
北京大学《高等数学》大一上期末复习资料
北京大学数学分析习题集 高等教育出版社 林源渠 方企勤