先給出算法:
給定n,求n的階乘末尾0的個數。
int res = 0; while (n > 0) { res += n / 5; n /= 5; }
因為:
比方說求15的階乘,也就是求
1 × 2 × 3 × 4 × 5 × 6 × 7 × 8 × 9 × 10 × 11 × 12 × 13 × 14 × 15 的末尾0的個數。現在我們把這15個數分解出來含有5的因子
1 × 2 × 3 × 4 × 5 × 6 × 7 × 8 × 9 × 2 × 11 × 12 × 13 × 14 × 3
× 5 × 5
每有一個5,階乘末尾就會多出來一個0,這樣n / 5就能統計完第一層5的個數,依次處理,就能統計出來所有5的個數。