输入N求N的阶乘的10进制表示的长度。例如6! = 720,长度为3。
Input
输入N(1 <= N <= 10^6)
Output
输出N的阶乘的长度
Input示例
6
Output示例
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)