51nod_1130 N的阶乘的长度 V2(斯特林近似)
来源:互联网 发布:嵌入式系统编程 pdf 编辑:程序博客网 时间:2024/06/05 00:49
1130 N的阶乘的长度 V2(斯特林近似)
基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 收藏 关注
输入N求N的阶乘的10进制表示的长度。例如6! = 720,长度为3。
Input
第1行:一个数T,表示后面用作输入测试的数的数量。(1 <= T <= 1000)
第2 - T + 1行:每行1个数N。(1 <= N <= 10^9)
Output
共T行,输出对应的阶乘的长度。
Input示例
3
4
5
6
Output示例
2
3
3
思路:N的范围太大直接用log枚举计算lg(1)+lg(2)+……lg(n)的话,O(n)复杂度,超时
直接利用斯特林近似公式(N!的极限)求,斯特林公式:
n!=sqrt(2*pi*n)*(n/e)^n(近似值)
注意得到lg(N!)后+1才是长度
代码:
#include<cstdio>#include<iostream>#include<cmath>//#define _USE_MATH_DEFINESusing namespace std; /*sqrt(2*pi*n)*pow(e/n,n) */int main(){ int t; cin>>t; while(t--){ long long n; cin>>n; long long l=log10((long double)(sqrt(2*M_PI*n)))+n*log10((long double)n/M_E);// cout<<M_E<<endl; cout<<l+1<<endl; }}
0 0
- 51nod_1130 N的阶乘的长度 V2(斯特林近似)
- 1130 N的阶乘的长度 V2(斯特林近似)
- 1130 N的阶乘的长度 V2(斯特林近似)
- 1130 N的阶乘的长度 V2(斯特林近似)
- 1130 N的阶乘的长度 V2(斯特林近似)
- 51nod 1130 N的阶乘的长度 V2(斯特林近似) 【数学】【斯特林公式】
- 51nod:1130 N的阶乘的长度 V2(斯特林近似)(数学公式)
- 51 nod 1130 N的阶乘的长度 V2(斯特林近似)
- 51nod 1130 N的阶乘的长度V2(斯特林近似)
- 51nod-1130 N的阶乘的长度 V2(斯特林近似)
- 51nod 1130 N的阶乘的长度 V2(斯特林近似)
- 51nod 1130 N的阶乘的长度 V2(斯特林近似)
- 51nod 1130 N的阶乘的长度 V2(斯特林近似)
- 51nod 1130 N的阶乘的长度 V2(斯特林近似)
- 51 Nod 1130 N的阶乘的长度 V2(斯特林近似)
- 51nod1130 N的阶乘的长度 V2(斯特林近似)
- 51Nod 1130 N的阶乘的长度 V2(斯特林近似)
- 51nod 1130 N的阶乘的长度 V2(斯特林近似)
- 定位概述
- JavaScript异步编程
- ThinkPHP的自动验证摘记
- warning: templates not found /usr/local/git/share/git-core/templates
- 51nod 1461 稳定桌
- 51nod_1130 N的阶乘的长度 V2(斯特林近似)
- ElasticSearch系列03:elasticsearch.yml(中文配置详解)
- 【已解决】Action无法调用Service 出现空指针异常
- TextView的textIsSelectable属性和setMovementMethod()
- java 操作 RabbitMQ 发送、接受消息
- Gradle for Android 第四篇( 构建变体 )
- 十大H5场景制作软件大盘点
- vim中设置显示行数,自动缩进,移动鼠标
- Eclipse下使用Android Design Support Library中的控件(比如TabLayout)