首页 > 代码库 > 阶乘0问题

阶乘0问题

Problem 1 - Time Limit : 1s Memory Limit : 512M Code Limit : 128K
Description
我们定义阶乘N!=1×2×3×...×N,并且0!=1。
现在我们想知道对于N!的阶乘结尾总共有多少个0。
Input
一行一个整数N。
Output
0的个数。
Sample Input
11
Sample Output
2
Hint
11!=39916800
Data Limit
10% N≤40
30% N≤10^6
60% N≤10^9
100% N≤10^18

Answer

一个2*5就可以得到一个0

但2有很多,所以我们只需要算5有多少个

这里采用的是辗转相除

求出5的个数

/*Never stop*/ 
#include<iostream>
using namespace std;
int main()
{
long long n,ans=0;
cin>>n;
while(n)
{
    ans+=n/5;
    n/=5;
}
cout<<ans;
return 0;
}

这样就能求出结尾0的个数

初次发表,请多谅解!

阶乘0问题