P1134 USACO3 2 階乘問題

2021-10-06 08:44:14 字數 496 閱讀 7929

注意理解:今天做pta也遇到了乙個類似的題目,不過那個題目是讓求非0後k位。

這裡,我們先把有可能乘出來10的質因子2和質因子5全部除掉,然後就可以放心大膽的取模啦,最後由於質因子2被多除了,再乘回來就好啦。

#include

#include

#include

#include

#include

#define ll long long

#define pr make_pair

#define pb push_back

using

namespace std;

int cnt=0;

intfi

(int x)

intmain

(void

)

洛谷 P1134 USACO3 2 階乘問題

也就是字面上的意思,求出n!階乘的最右邊的非零位的值。用模擬加數論的方法,因為想要在末尾出現乙個0,那麼就一定會是10的倍數,而10 2 5,所以只要看1 n 現5的次數即可,因為2的倍數的數量一定是比5的倍數的數量多的。然後在循換中每次mod10求個位數,因為任何正整數相乘的個位數只與它們的個位數...

P1134 階乘問題

也許你早就知道階乘的含義,n階乘是由1到n相乘而產生,如 12 1 times 2 times 3 times 4 times 5 times 6 times 7 times 8 times 9 times 10 times 11 times 12 479,001,60012 1 2 3 4 5 6...

P1134 階乘問題

題意 求出 n 去掉後導 0 之後的最後一位 首先後導 0 最簡單是由 2 5 得來的 於是想到乙個騷操作,先把每個數的 2,5 提出來,一對一對地消掉,就把後導 0 去掉了 因為在 1 n 中因子 2 一定比 5 多,所以最後讓 2 的個數減去 5 的個數 然後對於剩下的 2 不想寫快速冪 發現只...