POJ 1423 神奇公式计算N!位数 您所在的位置:网站首页 bbp公式计算pi的第n位 POJ 1423 神奇公式计算N!位数

POJ 1423 神奇公式计算N!位数

#POJ 1423 神奇公式计算N!位数| 来源: 网络整理| 查看: 265

题目大意:给定一个整数n输出n!一共有多少位数字

解题思路:看了大牛的博客 两种解法 1:1+lg(1)+lg(2)+..+lg(n) 2:strling公式:n!的位数=log10(sqrt(2*pi*n))+n*log10(n/e) Strling公式的意义在于:当n足够大之后n!计算起来十分困难,虽然有很多关于n!的不等式,但并不能很好的对阶乘结果进行估计,尤其是n很大之后,误差将会非常大.但利用Stirling公式可以将阶乘转化成幂函数,使得阶乘的结果得以更好的估计.而且n越大,估计得就越准确.

#include #include using namespace std; const double e=2.718281828459; const double pi=3.14159265359; double strling(int n) { return log10(2*pi*n)/2.0+n*(log10(n/e)); //0ms //return log10(sqrt(2*pi*n))+n*log10(n/e); //16ms } int main() { int t,n,ans; scanf("%d",&t); while(t--) { scanf("%d",&n); ans=(int)strling(n)+1;//注意!!!!10的n次方有n+1位数字 printf("%d/n",ans); } return 0; }


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有