首页 > 其他 > 详细

Factorial

时间:2020-01-01 14:35:04      阅读:62      评论:0      收藏:0      [点我收藏+]

给定一个整数N(N<=10^9),求其N!末尾有多少个0? 例如:N=10,N!=3628800,N!末尾有两个0。

 

sol:要求n!末尾有多少个0,问题转换为1~n中包含多少个5。因为2*5=10,可为结果提供一个0,而1~n中,包含的2的个数一定大于5,所以,只要求1~n中包含多少个5即可。

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 int main()
 4 {
 5     int n,count;
 6     cin>>n;
 7     while (n)//1~n中包含了多少个5,25,625... 
 8     {
 9         count+=n/5;
10         n/=5;
11     }
12     cout<<count;
13     return 0;
14 } 

Factorial

原文:https://www.cnblogs.com/cutepota/p/12128798.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!