【題目】今天在網上看到一道題目:100!結果數值中末尾有幾個0?
【分析】計算100!會溢位,所以使用將10分拆為10 = 2x5,在1~100中,尋找2的個數n(比如,4有兩個2),以及5的個數m,結果 x = m > n ? n : m;
【圖表分析】 現在只分析5,
1,2,3,4,5,6,...,25, ...,100
除以5後為: 0,0,0,0,1,0,...,5,...,20,此時有20個5
再對 1,2,3,...,20進行同樣計算:
除以5後為: 0,0,0,0,1,...,4,此時有4個
因為4 < 5,所以最終結果20 + 4 = 24;
同樣驗證1000!為:
1000/5 = 200
200/5 = 40
40/5 = 8
8/5 = 1
共計:200 + 40 + 8 + 1 = 249個0
同樣考慮2,要遠多於5的存在,
至此,完結
#include
int getfn_1(const int n)
}return counter;
}int main(void)
100階乘末尾有多少個零
題目 1 2 3 100 求結果末尾有多少個零 分析 一般類似的題目都會蘊含某種規律或簡便方法的,階乘末尾乙個零表示乙個進製,則相當於乘以10 而10 是由2 5所得,在1 100當中,可以產生10的有 0 2 4 5 6 8 結尾的數字,顯然2是足夠的,因為4 6 8當中都含有因子2,所以都可看當...
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 這個角度,問題就變得比較的...