n的阶乘后面有多少个0?
6的阶乘 = 1*2*3*4*5*6 = 720,720后面有1个0。
输入
一个数N(1 <= N <= 10^9)
输出
输出0的数量
输入样例
5
输出样例
1
数一下2和5的个数,取个数少的那个。
代码:
#include <iostream> #include <cstdlib> #include <cstdio> #include <cmath> #include <algorithm> using namespace std; int n; int main() { scanf("%d",&n); int ans1 = 0,ans2 = 0; int d = 2; while(d <= n) { ans1 += n / d; d *= 2; } d = 5; while(d <= n) { ans2 += n / d; d *= 5; } printf("%d",min(ans1,ans2)); return 0; }
如果觉得有帮助,点个推荐啦~