[51nod1058]求N!的长度
2024-09-03 23:20:31
法1:stirling公式近似
$n! \approx \sqrt {2\pi n} {(\frac{n}{e})^n}$
(如果怕n不够大下式不成立,可以当数小于10000时用for求阶层)
也可以用log10函数,不过直接使用log,e没有误差,一定注意longlong;
复杂度$O(1)$
#include<bits/stdc++.h>
#define PI acos(-1.0)
using namespace std;
typedef long long ll;
int main(){
int n,t;
cin>>t;
double ans;
while(t--){
cin>>n;
ans=(0.5*log(*PI*n)+n*log(n)-n)/log();
cout<<(ll)ans+<<endl;
}
return ;
}
法二:
直接for+log10循环求,复杂度$O(n)$
#include<bits/stdc++.h>
#define PI acos(-1.0)
using namespace std;
typedef long long ll;
int main(){
int n;
cin>>n;
double ans=1.0;//对10取对数之后需要+1
for(int i=;i<=n;i++){
ans+=log10(i);
}
cout<<(int)ans<<endl;
return ;
}
最新文章
- Android开发自学笔记(Android Studio1.3.1)&mdash;3.Android应用结构解析
- js 删除确定
- Install-Package EntityFramework -version 5.0.0.0
- 基于HTML5实现的Heatmap热图3D应用
- UVALive 6255 Kingdoms --状态搜索
- ios中webservice报文的拼接
- JQuery好用的日期选择控件 DatePicker
- PHP初学留神(一)
- event对象具有的方法
- repo总结
- ajax使用json
- 转:web_reg_save_param的使用详解
- Bootstrap入门(七)组件1:字体图标
- POJ2185(KMP)
- bzoj 4765 普通计算姬(树状数组 + 分块)
- 安装PyQt5之后mayavi和VTK不能使用
- 2017 Multi-University Training Contest - Team 1 1001&;&;HDU 6033 Add More Zero【签到题,数学,水】
- junit测试延伸--私有方法测试
- Python 3.6 中文手册——前言
- C语言函数声明什么时候可以省略,什么时候不能省?
热门文章
- HTML哪些是块级元素,哪些是行内元素、
- 3.26课&#183;&#183;&#183;&#183;&#183;&#183;&#183;&#183;&#183;window.document对象
- INT(M)表示什么意思?
- python中reduce()函数
- 7zip压缩程序的使用
- python第四篇:linux命令行总结 + 自动备份Python程序
- 创建HTML5/CSS3单页Web布局
- SQL嵌套子查询和相关子查询的执行过程有什么区别(推荐)
- 分享知识-快乐自己:Struts2 前台日期到后台的日期格式转换
- POJ 3126 Prime Path(BFS算法)