求N階乘的長度

2021-06-18 12:15:35 字數 671 閱讀 2669

給乙個數x,len=log10(x)+1就是x這個數的長度

當n的值不超過10^6時

那麼n的階乘長度=log10(1*2*3*4*……*n)+1=log10(1)+log10(2)+log10(3)+

log10(4)+……+log10(n)+1

#include#includeint main()

當n比較大時,再用上面這種方法就有點笨拙了

斯特林公式斯特林公式n!=sqrt(2*pi*n)*(n/e)^n

n!的長度len=log10(sqrt(2*pi*n)*(n/e)^n)+1 =0.5*log10(2.0*pi*n)+n*log10(n/e)+1

#include #include #include #include using namespace std ;

#define pi 3.1415926

#define e 2.718281828459

int main()

//斯特林公式n!=sqrt(2*pi*n)*(n/e)^n

len = 0.5*log10(2.0*pi*n)+n*log10(n*1.0/e)+1;

printf("%i64d\n",len) ;

}}

n的階乘的長度

1130 n的階乘的長度 v2 斯特林近似 基準時間限制 1 秒 空間限制 131072 kb 分值 0 難度 基礎題 輸入n求n的階乘的10進製表示的長度。例如6 720,長度為3。input 第1行 乙個數t,表示後面用作輸入測試的數的數量。1 t 1000 第2 t 1行 每行1個數n。1 n...

求n的階乘(10000)

題意 如題目 思路 用乙個陣列,陣列的每一位存乙個8位數,兩個for迴圈,不斷從1開始累乘。include include include include using namespace std const int maxn 100000000 注意不能超過long long 的表示範圍 long ...

(Java)求n的階乘

當n整數值較小時,無須考慮n!是否會超出資料型別的範圍 public static long getnfactorial int n return n getnfactorial1 n 1 public static long getnfactorial1 int n long sum 1l for...