【再谈阶乘的近似解】HDU 1018——Big Number
2013-02-19 12:11
393 查看
题目链接:点击打开链接
求某数阶乘的位数。网上比较流行的方法是取对数后硬算,卡时而过,还是有些取巧成分的。
正解可能是数论中的斯特林估算阶乘法(来源为WIKI):
对这个公式取对数,可以快速得到位数,另外在比赛中进行快速估算也是比较方便的。
求某数阶乘的位数。网上比较流行的方法是取对数后硬算,卡时而过,还是有些取巧成分的。
正解可能是数论中的斯特林估算阶乘法(来源为WIKI):
对这个公式取对数,可以快速得到位数,另外在比赛中进行快速估算也是比较方便的。
#include <iostream> #include <cmath> #include <iomanip> using namespace std; const double PI=acos(-1); const double e=exp(1); int main() { int testcase; cin>>testcase; while(testcase--) { int n; cin>>n; double res; if(n==1 || n==0) { cout<<"1"<<endl; } else { res=log10(sqrt(2*PI*n))+n*log10(n/e);//斯特灵公式 cout<<setiosflags(ios::fixed)<<setprecision(0)<<ceil(res)<<endl; } } return 0; }
相关文章推荐
- HDU 1018 Big Number (阶乘位数)
- HDU 1018 Big Number【阶乘位数】
- HDU 1018 Big Number(阶乘位数计算)
- hdu1018——Big Number(大数阶乘,斯特林公式)
- hdu 1018 Big Number (求一个数的阶乘的位数,公式!!!)
- hdu 1018 Big Number (求一个数的阶乘的位数,公式!!!)
- hdu 1018 -Big Number(求n的阶乘的位数)
- HDU 1018 Big Number (数的阶乘的长度:数学)
- HDU1018 Big Number(求阶乘位数)
- HDU--1018--Big number!(计算阶乘结果的位数)
- hdu 1018 Big Number(求阶乘的位数)
- HDU 1018 Big Number 斯特林数近似n!
- hdu_1018_Big Number_求阶乘长度模板题
- HDU 1018 Big Number
- HDOJ1018 Big Number(斯特林公式求阶乘位数)
- HDU 1018 Big Number
- HDU 1018 Big Number 计算N!的位数
- HDU 1018 Big Number 数学题解
- hdu-1018-Big Number-简单数学
- hdoj1018_Big Number(大数阶乘位数)