如何计算n! 有几位数字

一个公式

#include<cstdio>
#include<cstring>
#include<algorithm>
#include<map>
#include<stack>
#include<queue>
#include<set>
#include<vector>
#include<cmath>
#include<math.h>
using namespace std;
int main(){
    int X;
    scanf("%d",&X);
    while(X--){
        double n;
        scanf("%lf",&n);
        if(n == 1) printf("1\n");
        else{
        double ans = ((n * log(n)) - n + 0.5 * log(2 * n * 3.14159265))/log(1.0 * 10);
        int t = (int)(ans + 1);
        printf("%d\n",t);
        }
    }
    return 0;
}


你可能感兴趣的:(如何计算n! 有几位数字)