南陽 84 階乘的0

2021-06-20 02:17:34 字數 765 閱讀 8974

描述

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

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

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

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

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

樣例輸入63

60100

1024

23456

8735373

樣例輸出014

24253

5861

2183837

思路:

乙個數 n 的階乘末尾有多少個 0 取決於從 1 到 n 的各個數的因子中 2 和 5 的個數, 而 2 的個數是遠遠多餘 5 的個數的, 因此求出 5 的個數即可. 題解中給出的求解因子 5 的個數的方法是用 n 不斷除以 5, 直到結果為 0, 然後把中間得到的結果累加. 例如, 100/5 = 20, 20/5 = 4, 4/5 = 0, 則 1 到 100 中因子 5 的個數為 (20 + 4 + 0) = 24 個, 即 100 的階乘末尾有 24 個 0. 其實不斷除以 5, 是因為每間隔 5 個數有乙個數可以被 5 整除, 然後在這些可被 5 整除的數中, 每間隔 5 個數又有乙個可以被 25 整除, 故要再除一次, ... 直到結果為 0, 表示沒有能繼續被 5 整除的數了.

#includeint main()

printf("%d\n",s);

}return 0;

}

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的個數

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

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

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