也許你早就知道階乘的含義,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:複製
6usaco 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的數,結果還是自己,因此可...