链接:
https://www.nowcoder.com/acm/contest/135/D
来源:牛客网
题目描述
输入描述:
输入数据共一行,一个正整数n,意义如“问题描述”。
输出描述:
输出一行描述答案: 一个正整数k,表示S的末尾有k个0
示例1
输入
复制
10
输出
复制
7
说明
题目让求阶乘最后有几个0,即为该表达式的最后结果含有10的几次方的因子,直接求的话,不太好求 不妨转化一下思路,容易发现10的几次方都有一个通性:质因子只有2和5,
显然,阶乘中 质因子2的个数比5多。所以这个题可以转换为 求 因子5的个数,那么此题就迎刃而解了
代码如下:
#include<iostream>
using
namespace
std;
int
main()
{
long
long
n, sum = 0, cnt = 0;
cin >> n;
for
(
int
i = 5;i <= n;i ++)
{
long
long
t = i;
while
(t % 5 == 0)
{
cnt ++;
t /= 5;
}
sum += cnt;
}
cout << sum << endl;
return
0;
}