nyoj 84階乘後0的個數

2022-03-14 03:44:44 字數 1025 閱讀 5692

描述

計算n!的十進位制表示最後有多少個0

輸入第一行輸入乙個整數n表示測試資料的組數(1<=n<=100)

每組測試資料佔一行,都只有乙個整數m(0<=m<=10000000)

輸出輸出m的階乘的十進位制表示中最後0的個數

比如5!=120則最後的0的個數為1

樣例輸入

6360

1001024

23456

8735373

分析:
0**於2*5,且將n!中分解後,2的個數大於5的個數所有,0的個數就等於n!中銀子5的個數。
f(n!)=1*2*3*4*5*6*7*…(2*5)…(3*5)***(4*5) ….(k*5)* … n
只考慮5的倍數:其他的必然沒有5.
抽取出來:
5*(1*2*3*k*) (其他的數) 現在已經有k個5了,但是k!中可能含有5,公式為
f(n)=k+f(k!) k=n/5;
k<5,時候,沒有0,所以f(n!)=0;k<=4;
遞迴寫法就很簡單了。
int fun(int n)
仔細分析後,其實最終就是求n!因子5的個數。
private

static

int fun2(int

n) }}

return

count;

}

在nyoj 提交之後發現,遞迴的效果還不錯。

nyoj 84 階乘的0 規律題

記憶體限制 64mb 時間限制 3000ms 特判 no 通過數 7 提交數 9 難度 3 計算n 的十進位制表示最後有多少個0 第一行輸入乙個整數n表示測試資料的組數 1 n 100 每組測試資料佔一行,都只有乙個整數m 0 m 10000000 輸出m的階乘的十進位制表示中最後0的個數 比如5 ...

nyoj 84 階乘的0(數學技巧)

時間限制 3000 ms 記憶體限制 65535 kb 難度 3 描述 計算n 的十進位制表示最後有多少個0 輸入第一行輸入乙個整數n表示測試資料的組數 1 n 100 每組測試資料佔一行,都只有乙個整數m 0 m 10000000 輸出輸出m的階乘的十進位制表示中最後0的個數 比如5 120則最後...

南陽 84 階乘的0

描述 計算n 的十進位制表示最後有多少個0 輸入第一行輸入乙個整數n表示測試資料的組數 1 n 100 每組測試資料佔一行,都只有乙個整數m 0 m 10000000 輸出輸出m的階乘的十進位制表示中最後0的個數 比如5 120則最後的0的個數為1 樣例輸入63 60100 1024 23456 8...