n的階乘末尾有多少個0?

2021-09-23 07:37:29 字數 1076 閱讀 1500

1.先求res = n!,然後 tmp = res %10, if(tmp ==0)count++,造成問題,n!的增長很誇張,一不小心就溢位了

2.追究到底,這種題目還是找規律的題

會發現2*5=10,這樣子就多出來乙個0了,所以問題可以轉化成求有多少對2和5,但2的個數明顯比5還要多,所以只關心5的個數就好了。當然了,有時候乙個數里可不止乙個5,比如25=5*5,125=5*5*5。

那麼問題來啦,怎麼求有多少個5呀?

5! :1*2*3*4*5 有乙個5 ,

10!: 1*2*3*4*5*6*7*8*9*10 有2個5(10=2*5)

15!:1*...*5*...*10*...*15有3個5(15=3*5) 

20!: 1*...*5*...*10*...*15*...*20有4個5

25! : 1*2*3*4*5*6*7*8*9*10 ..15 ..20 ..24*25 有6個5(因為25=5*5)

50!: 5,10,15,20,25,30,35,40,45,50有12個5,因為有2個25,多了兩個5

那60的話, 單獨的5有12個,多出來2個25(25有乙個25,50有乙個25),多了兩個5,所以是14個5

會發現,

25裡面,5的個數:25/5=5(5的個數), 5/5=1(25的個數),所以是5+1=6

50裡面,5的個數:50/5=10, 10/5 = 2, 所以是10+2 = 12

100裡面,5的個數:100/5=20,20/5=4,所以是24

125裡面,5的個數:125/5=25(5的個數),25/5=5(25的個數),5/5=1(125的個數),所以是31

假如n = 2019好了

2019!裡面5的個數:2019/5=403個

2019!裡面25的個數:403/5=80個(多出來的5)

2019!裡面125的個數:80/5=16個(多出來的5)

2019!裡面625的個數:16/5=3個(多出來的5)

所以一共有5的個數:403+80+16+3=502

public static int sumoffive(int n)

N的階乘末尾有多少個0

例如 n 5,n 120.末尾有1個0.分析 想到這個問題,有人可能第一反應就是現求出n 然後再根據求出的結果,最後得出n 的末尾有多少個0。但是轉念一想,會不會溢位,等等。其實,從 那些數相乘可以得到10 這個角度,問題就變得比較的簡單了。首先考慮,如果n的階乘為k和10的m次方的乘積,那麼n 末...

N的階乘末尾有多少個0

chinawanglun 問題 n的階乘 n 中的末尾有多少個0?例如 n 5,n 120.末尾有1個0.分析 想到這個問題,有人可能第一反應就是現求出n 然後再根據求出的結果,最後得出n 的末尾有多少個0。但是轉念一想,會不會溢位,等等。其實,從 那些數相乘可以得到10 這個角度,問題就變得比較的...

n 階乘末尾有多少個零0

題目 初階 1 2 3 100 求結果末尾有多少個零。高階 n的階乘末尾有多少個0 分析 一般類似的題目都會蘊含某種規律或簡便方法的階乘末尾乙個零表示乙個進製,則相當於乘以10而10 是由2 5所得,在1 100當中,可以產生10的有 0 2 4 5 6 8 結尾的數字,顯然2是確定的,因為4 6 ...