LeetCode 题解(204) : Factorial Trailing Zeroes

来源:互联网 发布:求解方程组最优化 编辑:程序博客网 时间:2024/06/05 14:28

题目:

Given an integer n, return the number of trailing zeroes in n!.

Note: Your solution should be in logarithmic time complexity.

题解:

0的个数由5的个数决定,但是25 = 5 * 5 等于两个5, 同理125, 625, 。。。。

递推公式为 r += n / 5, n /= 5

C++版:

class Solution {public:    int trailingZeroes(int n) {        int r = 0;        while(n > 0) {            int k = n / 5;            r += k;            n = k;        }        return r;    }};

Java版:

public class Solution {    public int trailingZeroes(int n) {        int r = 0;        while(n > 0) {            int k = n / 5;            r += k;            n = k;        }        return r;    }}

Python版:

class Solution(object):    def trailingZeroes(self, n):        """        :type n: int        :rtype: int        """        r = 0        while n > 0:            k = n / 5            r += k            n = k        return r

0 0
原创粉丝点击