階乘最右邊的那個非0數

2021-10-14 13:35:26 字數 633 閱讀 6366

乙個整數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的正整數都能被表示成若干個素數的乘積且表示方法是唯一的 整理可以將相同素數的合併...