HDU 1018 Big Number(求n!的位数)
来源:互联网 发布:金石计价软件破解 编辑:程序博客网 时间:2024/06/05 08:10
题目链接:Click here~~
题意是要求出n的阶乘的位数。
Stirling公式: lim(n→∞) (n/e)^n*√(2πn) / n! = 1
根据此式,对等式两边同取以10为底的对数即可得到log10(n!)的值,再对此值取上整即可得到n!的位数。
需要注意的是,式中有自然对数e,e是未知的。所以可以通过换底公式,log10(n!) = log(n!) / log(10),先求出log(n!)。
#include <stdio.h>#include <math.h>const double Pi = acos(-1.0);int for_digit(int n){ if(n == 1) return 1; return ceil( ( n*(log(n) - 1) + 0.5*log(2*Pi*n) ) / log(10) );}int main(){ int z,n; scanf("%d",&z); while(z--) { scanf("%d",&n); printf("%d\n",for_digit(n)); } return 0;}
- HDU 1018 Big Number(求n!的位数)
- HDU 1018 Big Number(求n!的位数)
- hdu 1018 big number (求N!的位数)
- hdu 1018 -Big Number(求n的阶乘的位数)
- Hdu 1018 Big Number 求N!的位数
- HDU 1018 Big Number N!的位数
- (hdu step 2.3.3)Big Number(求N!的位数)
- 【HDU1018】Big Number - 求n!的位数
- hdoj 1018 Big number 求n阶乘的位数
- Big Number(hdu1018,求n!的位数)
- HDU 1018 Big Number 计算N!的位数
- 【HDU 1018】Big Number —— n!的位数
- 求位数 hdu 1018 Big Number
- hdu-1018Big Number(阶乘求位数)
- HDU 1018 Big Number (log函数求数的位数)
- hdu 1018 Big Number(公式求阶乘位数)
- hdu 1018 Big Number_Stirling数求N!的位数
- hdu 1018 Big Number (求一个数的阶乘的位数,公式!!!)
- cocos2d-x CCUserDefault crash后数据不保存问题
- Android自动更新代码
- mahout入门之推荐系统
- 八皇后问题
- http://acm.hdu.edu.cn/showproblem.php?pid=1710
- HDU 1018 Big Number(求n!的位数)
- 深入研究java.lang.Class类
- android clipPath切割画布
- SQL函数学习 配置函数
- Sencha Touch 2 快速入门系列(一)-- 建立第一个Sencha Touch应用
- PHP 笔记
- 16.python的网络编程
- jquery操作select option使用小结
- [技术分享] 20120401,TMG 生成报告,但内容为空