藍橋杯 演算法訓練 P0505

2021-09-12 10:41:49 字數 940 閱讀 8934

乙個整數n

nn的階乘可以寫成n!n!

n!,它表示從1到n

nn這n

nn個整數的乘積。階乘的增長速度非常快,例如,13!就已經比較大了,已經無法存放在乙個整型變數中;而35!就更大了,它已經無法存放在乙個浮點型變數中。因此,當n

nn比較大時,去計算n!n!

n!是非常困難的。幸運的是,在本題中,我們的任務不是去計算n!n!

n!,而是去計算n!n!

n!最右邊的那個非0的數字是多少。例如,5!=

1∗2∗

3∗4∗

5=

1205!=1*2*3*4*5=120

5!=1∗2

∗3∗4

∗5=1

20,因此5!最右邊的那個非0的數字是2。再如,7!=5040,因此7!最右邊的那個非0的數字是4。再如,15!= 1307674368000,因此15!最右邊的那個非0的數字是8。請編寫乙個程式,輸入乙個整數n(0n

n<=100),然後輸出n!n!

n!最右邊的那個非0的數字是多少。

輸入:7

輸出:4

個人思路:剛開始想著去找規律,本來都以為發現了規律了(就想著用每乙個數(n

nn)得到的階乘的個位傳遞給下一位再判斷 ),結果測試ove

rover

over

。然後直接暴力,當然,直接100!肯定會爆棧,但可以適當的對資料進行一些處理,對每一步的階乘結果進行取模,同時將取模後的結果末尾的零將其剔除,這樣能保證在資料範圍內

#include

using namespace std;

int n;

intmain()

cout << res %

10<< endl;

return0;

}

藍橋杯 演算法訓練 P0505

時間限制 1.0s 記憶體限制 256.0mb 乙個整數n的階乘可以寫成n 它表示從1到n這n個整數的乘積。階乘的增長速度非常快,例如,13!就已經比較大了,已經無法存放在乙個整型變數中 而35!就更大了,它已經無法存放在乙個浮點型變數中。因此,當n比較大時,去計算n 是非常困難的。幸運的是,在本題...

藍橋杯 演算法訓練 P0505

乙個整數n的階乘可以寫成n 它表示從1到n這n個整數的乘積。階乘的增長速度非常快,例如,13!就已經比較大了,已經無法存放在乙個整型變數中 而35!就更大了,它已經無法存放在乙個浮點型變數中。因此,當n比較大時,去計算n 是非常困難的。幸運的是,在本題中,我們的任務不是去計算n 而是去計算n 最右邊...

藍橋杯 演算法訓練 P0505

演算法訓練 p0505 時間限制 1.0s 記憶體限制 256.0mb 乙個整數n的階乘可以寫成n 它表示從1到n這n個整數的乘積。階乘的增長速度非常快,例如,13!就已經比較大了,已經無法存放在乙個整型變數中 而35!就更大了,它已經無法存放在乙個浮點型變數中。因此,當n比較大時,去計算n 是非常...