这道题如果直接看题面,最容易想到的方法就是:
先把 n! 算出来,再看看这个数最后有多少个连续的 0。
这个想法很自然,因为题目问的就是“阶乘末尾有多少个 0”。但是写算法时,不能只看“想法对不对”,还要看“能不能在数据范围内跑得动”。
下面我们从最直白的思路,一步一步推到真正高效的做法。
本题来源于26年华为实习AI方向手撕真题,同学写的面经在这
给定一个数n,n 的阶乘末尾有多少数字 ′0′ ?
一个正整数 n 。
1≤n≤105
n 的阶乘包含 ’0′ 的数量。
输入
7
输出
1
说明
7 的阶乘是 5040 ,其中有 1 个数字 ′0′