考虑到只要有5,或者因子为5的数,就可以产生0的尾部。假如1*2*3*4*...*250,那么250/5=50可以知道,有50个为5的倍数,但是里面有多少个为25的倍数,125的倍数...,
50/5=10,可知25的倍数有10个,10/5=2,可知125的倍数有两个,以此类推,代码如下:
class Solution {
public:
// param n : description of n
// return: description of return
long long trailingZeros(long long n) {
long long num = 0;
while(n)
{
num += n / 5;
n = n / 5;
}
return num;
}
};
如果有所帮助,脸皮厚求个赞~
此文章仅代表自己(本菜鸟)学习积累记录,或者学习笔记,如有侵权,请联系作者删除。人无完人,文章也一样,文笔稚嫩,在下不才,勿喷,如果有错误之处,还望指出,感激不尽~
技术之路不在一时,山高水长,纵使缓慢,驰而不息。
公众号:秦怀杂货店
转载请注明原文地址: https://ju.6miu.com/read-677540.html