Given an integer n, return the number of trailing zeroes in n!.
这是一道数学题,把N!写成乘数。那么零的产生是因为2*5而来的,因为每隔一个五,肯定有不止一个2,你可以考虑一下5-25之间有几个数是2的倍数。那么我们只用考虑N!中五的个数,每次有一个5,就会有1个0,同理,当有25时,会产生两个0,由于我们在计算五的个数时已经计算了一次5了,所以25的时候还要再多一次。
简单的说,公式是:
N/5+N/25+N/125+N/625+...直到除的结果是0。
class Solution {
public int trailingZeroes(int n) {
int count = 0;
while(n>0)
{
count+=n/5;
n=n/5;
}
return count ;
}
}
网友评论