51Nod 1058 N的阶乘的长度

来源:互联网 发布:吉利剃须刀哪款好 知乎 编辑:程序博客网 时间:2024/06/05 16:58
输入N求N的阶乘的10进制表示的长度。例如6! = 720,长度为3。
Input

输入N(1 <= N <= 10^6)

Output

输出N的阶乘的长度

Input示例

6

Output示例

3

题意:…………

思路:一开始感觉要用字符串来写,然而并没有写出来…………查了资料才知道用的是斯特林近似,公式为:n!=sqrt((2*PI*n)*(n/e)^n);

下面附上代码:
#include<bits/stdc++.h>   using namespace std;  #define PI 3.1415926  int n;  void solve()  {      int a=(int) ((0.5 * log(2 * PI * n) + n * log(n) - n) / log(10));      printf("%d\n",a+1);  //是2不是22.... }  int main()  {      scanf("%d",&n);      solve();      return 0;  }//斯特林公式 : n! = sqrt((2 * n * PI) * (n / e ) ^ n)