description
n! (n的階乘) 是非常大的數,計算公式為:n! = n * (n - 1) * (n - 2) * … * 2 * 1)。現在需要知道n!有多少(十進位制)位。
input
每行輸入1個正整數n。0 < n < 1000000
output
對於每個n,輸出n!的(十進位制)位數。
sample input13
32000
1000000
sample output11
130271
5565709
/*n!位數是lg(n!)+1
lg(n!)=lg(1)+…+lg(n)
*/
#include
using
namespace std;
intmain()
return0;
}
/*
利用斯特林公式
優化*/
#include
using
namespace std;
const
double e=
2.7182818284590452354
,pi=
3.141592653589793239
;int
main()
return0;
}
求N 有多少個0,1,2, ,9
給出乙個正整數n 0 n 10000 求n 有多少個0,1,2,9。輸入有一行,為乙個正整數n 輸出n 中0,1,2,9的個數 以空格隔開 10 2 0 1 1 0 0 1 0 2 0 分析 n!最多只有35660位 n 10000時 因為時間充足,所以可採用求大數階乘的演算法求出n!的具體數值,然...
求大數的階乘有多少位
可設想n 的結果是不大於10的m次冪的數,即n 10 m 10的m次方 則不小於m的最小整數就是 n 的位數 對 該式兩邊取對數,有 m log10 n 即 m log10 1 log10 2 log10 3.log10 n 迴圈求和,就能算得m值,該m是n 的精確位數。當n比較大的時候,這種方法方...
求N!末尾有多少個0
思考 該題實際上是求 2 5 因子對的個數。對於任意乙個階乘,5因子的個數總是小於2因子的個數,僅需考慮n 中5因子的個數 方法 1 將該數用 5 除,得到的商取整數。2 然後再用所得商當被除數除以 5,得到的商取整數。3 持續做到商等於 0 為止。4 過程中的商加總即為階乘的尾數 0 的個數。例 ...