乙個整數n的階乘可以寫成n!,它表示從11到nn這nn個整數的乘積。階乘的增長速度非常快,例如,13!就已經比較大了,已經無法存放在乙個整型變數 中;而35!就更大了,它已經無法存放在乙個浮點型變數中。因此,當n比較大時,去計算n!n!是非常困難的。幸運的是,在本題中,我們的任務不是去計算 n!,而是去計算n!最右邊的那個非00的數字是多少。例如,5!=1∗2∗3∗4∗5=120,因此5!最右邊的那個非0的數字是2。再如:7!=5040,因此7!最右邊的那個非0的數字是4。請編寫乙個程式,輸入乙個整數n(n≤100),然後輸出n! 最右邊的那個非0的數字是多少。
輸入格式:輸入只有乙個整數n。
輸出格式:輸出只有乙個整數,即n!最右邊的那個非0的數字。
#includeusing namespace std;
int main() ,
arr2[20] = ;
int n;
cin >> n;
if (n <= 10)cout << arr1[n - 1];
else cout << arr2[((n - 10) - 1) % 20];
}
本篇文章由一文多發平台artipub自動發布
階乘問題(求 階乘最右邊不為 0 的數)
題目提供者評測方式雲端評測標籤usaco高效能 難度普及 提高 時空限制1000ms 128mb 提交 題解 也許你早就知道階乘的含義,n階乘是由1到n相乘而產生,如 12 1 times 2 times 3 times 4 times 5 times 6 times 7 times 8 times...
n的階乘最後乙個非0的數
哈哈 要說這個題目,中午比賽的時候1ac了 歸功於之前寫過的求大數的階乘這個演算法啊。在電腦上除錯了一會,發現求階乘的過程是一段段輸出的。就比如說10的階乘,先輸出362,然後8800,知道了這點,那麼求n的階乘最後乙個非0的數就變得很簡單了。只要加個while判斷一下,就ok了 include i...
某數階乘的尾數0的個數
1 大數的階乘後尾0的個數,求0的個數,讓我們想到0就是由2,5的乘積組成,這裡我為什麼沒有把10,100 等等,都出來而只單單說只是2,和5的乘積呢,我們先回憶一下,唯一分解定理。2 唯一分解定理,概念 任意乙個大於0的正整數都能被表示成若干個素數的乘積且表示方法是唯一的 整理可以將相同素數的合併...