j**********3 发帖数: 3211 | 1 我咋过不去?用了网上搜到的别人的代码,依然过不去。。。。 |
h****z 发帖数: 11 | 2 //Java
public class Solution {
public int trailingZeroes(int n) {
int ret = 0;
for(long i=5;n/i>=1;i*=5)
ret +=n/i;
return ret;
}
}
有问题么? |
j**********3 发帖数: 3211 | 3 我试试,谢谢!
【在 h****z 的大作中提到】 : //Java : public class Solution { : public int trailingZeroes(int n) { : int ret = 0; : for(long i=5;n/i>=1;i*=5) : ret +=n/i; : return ret; : } : } : 有问题么?
|
g********t 发帖数: 53 | 4 // Python
算法看了下攻略,自己实现一个
class Solution:
# @return an integer
def trailingZeroes(self, n):
# the number of zeroes depends on the pair of '2' * '5' . Obviously,
2 is more than 5 in n!. just count how many 5 are multiplied in factorial.
if n <= 0 : return 0
res = 0
size = 0
while n != 0:
size = n / 5
res += size
n = size
return res |
y*****e 发帖数: 712 | 5 这个应该是标准答案
【在 h****z 的大作中提到】 : //Java : public class Solution { : public int trailingZeroes(int n) { : int ret = 0; : for(long i=5;n/i>=1;i*=5) : ret +=n/i; : return ret; : } : } : 有问题么?
|
j**********3 发帖数: 3211 | 6 这个赞,我找到我哪里写错了。
【在 h****z 的大作中提到】 : //Java : public class Solution { : public int trailingZeroes(int n) { : int ret = 0; : for(long i=5;n/i>=1;i*=5) : ret +=n/i; : return ret; : } : } : 有问题么?
|
y****e 发帖数: 25 | 7 今天刚做的(recursive):
public int trailingZeroes(int n) {
if (n < 5) return 0;
//just count how many 5's are from 1..n
n /= 5;
//also count the # of 5's multiples
return n + trailingZeroes(n);
}
【在 j**********3 的大作中提到】 : 我咋过不去?用了网上搜到的别人的代码,依然过不去。。。。
|
z***c 发帖数: 78 | 8 public int trailingZeroes(int n) {
int count = 0;
while (n > 0) {
count += n/5;
n /= 5;
}
return count;
} |