阶乘(factorial) 牛客小白月赛5

  • Post author:
  • Post category:其他


链接:

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;


}