题解 | #快速生长的草# 计算2和5的个数

快速生长的草

https://www.nowcoder.com/practice/de1d9ec0d53d4202ae83dc3b25a63166

知识点

数学

思路

计算数字2和数字5的个数,翻倍等于2的个数+1;

后缀零的个数等于2和5个数较小的一个。

时间复杂度 O(logn)

AC Code(C++)

class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param n int整型 
     * @param m int整型 
     * @return int整型
     */
    int trailingZeroes(int n, int m) {
        int c2 = m, c5 = 0;
        while (n % 5 == 0) {
            n /= 5;
            c5 += 1;
        }
        while (n % 2 == 0) {
            n /= 2;
            c2 += 1;
        }
        return min(c2, c5);
    }
};

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务