P1134 階乘問題

2021-09-02 04:21:13 字數 789 閱讀 4358

也許你早就知道階乘的含義,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×7×8×9×10×11×12=479,001,600

1212的階乘最右邊的非零位為66。

寫乙個程式,計算n(1 \le n \le 50,000,000)n(1≤n≤50,000,000)階乘的最右邊的非零位的值。

注意:10,000,000!10,000,000!有24999992499999個零。

輸入格式:

僅一行包含乙個正整數nn。

輸出格式:

乙個整數,表示最右邊的非零位的值。

輸入樣例#1:複製

12
輸出樣例#1:複製

6
usaco training section 3.2

題解:模擬階乘,只需保留後面幾位數即可,然後最後的時候輸出最後一位,如果只考慮最後一位,會對階乘的最後一位有影響

**:

#include#include#include#includeusing namespace std;

int main()

cout

}

P1134 階乘問題

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

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,求n 最右邊第一位的非0數。解題思路 對於乙個數的階乘,末尾的0只會以2 5的形式產生。而1到n中因數2的數量遠遠大於5,因此我們可以通過找因數5的方式來濾掉末尾的0 這裡還有另乙個規律 除去0 和1 本題的答案只可能是2,4,6,8。這4個數乘上末位是6的數,結果還是自己,因此可...