數的長度 斯特林公式的運用

2021-06-22 01:50:15 字數 693 閱讀 2409

時間限制:

3000 ms  |  記憶體限制:

65535 kb

難度:1 描述

n!階乘是乙個非常大的數,大家都知道計算公式是n!=n*(n-1)······*2*1.現在你的任務是計算出n!的位數有多少(十進位制)?

輸入

首行輸入n,表示有多少組測試資料(n<10) 隨後n行每行輸入一組測試資料 n( 0 < n < 1000000 )

輸出對於每個數n,輸出n!的(十進位制)位數。

樣例輸入

313

32000

樣例輸出

1

1130271

**acm教程

上傳者rooot

此題的最佳解法為:斯特林解法何為斯特林,在下也不好說,是2023年前的一位數學家提出來的構想:

如何快速求出n!的位數呢? 數學上的公式為:

strlen(n!)=log10(√2*π*n)+n*log10(n/e);

所以只需要將其轉化為計算機上的公式即可:

其中π=2*acos(0.0)或者π=4*atan(1.0);

e=exp(1);

所以用計算機敲出來為:    length=log10(sqrt(4*acos(0.0)*n))+n*log10(n/exp(1));

我相信我不平凡!!       

NYOJ 數的長度(斯特林公式的應用)

時間限制 3000 ms 記憶體限制 65535 kb 難度 1 描述n!階乘是乙個非常大的數,大家都知道計算公式是n n n 1 2 1.現在你的任務是計算出n!的位數有多少 十進位制 輸入首行輸入n,表示有多少組測試資料 n 10 隨後n行每行輸入一組測試資料 n 0 n 1000000 輸出對...

斯特林公式

斯特林公式是一條用來取n階乘近似值的數學公式。一般來說,當n很大的時候,n階乘的計算量十分大,所以斯特靈公式十分好用。斯特林公式可以用來估算某數的大小,結合lg可以估算某數的位數,或者可以估算某數的階乘是另乙個數的倍數。stirling公式的意義在於 當n足夠大時,n 計算起來十分困難,雖然有很多關...

斯特林公式

斯特林公式的常見表示形式 顯而易見,這個公式主要是用來求近似的階乘的值的,在競賽中往往只採用第乙個形式,其精確度已經足夠用來求階乘位數了.lg n lg 2 n 2 n lg n lg e 這個公式就是圖中第乙個式子左右同時求對數得到的.不難發現,10x,10 x 1 之間囊括了所有長度為x 1的數...