输入N求N的阶乘的10进制表示的长度。例如6! = 720,长度为3。
求N的阶乘长度
计算n!的公式是斯特林公式:
计算一个数的长度为 log10(n) +1
AC代码:
/*** ┏┓ ┏┓+ +* ┏┛┻━━━┛┻┓ + +* ┃ ┃ * ┃ ━ ┃ ++ + + +* ████━████ ┃+* ┃ ┃ +* ┃ ┻ ┃* ┃ ┃ + +* ┗━┓ ┏━┛* ┃ ┃ * ┃ ┃ + + + +* ┃ ┃* ┃ ┃ + 神兽保佑* ┃ ┃ 代码无bug * ┃ ┃ + * ┃ ┗━━━┓ + +* ┃ ┣┓* ┃ ┏┛* ┗┓┓┏━┳┓┏┛ + + + +* ┃┫┫ ┃┫┫* ┗┻┛ ┗┻┛+ + + +*/
#include<iostream>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std;
typedef long long ll;
const double e=2.718281828459;
const double pi=acos(-1.0);
int main()
{ll n;while(cin>>n){ll len=0.5*log10(2*n*pi)+n*log10(n/e)+1;cout<<len<<endl;}return 0;}