'大數階乘的位數C語言怎麼計算大數階乘的結果'

C語言 包日良 2019-08-20
"

#include <cstdio>

#include <cmath>

#define pi 3.14159265

#define e 2.718281828

int main()

{

int n,num;//所求為n!的位數,num為位數

scanf("%d",&n);

if(n==0)

{

num=1;

}

else

{

num=(int)((0.5*log(2*pi*n)+n*log(n)-n)/log(10))+1;

}

printf("%d",num);

}

使用斯特林公式,n!約等於sqrt(2*pi*n)*(n/e)^n,如不理解需更多信息或者有使用高精度(long long不夠)的需求繼續追問

"

相關推薦

推薦中...