C++实现LeetCode(172.求阶乘末尾零的个数)

这篇文章主要介绍了C++实现LeetCode(172.求阶乘末尾零的个数),本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下

C++实现LeetCode(172.求阶乘末尾零的个数),久久派带你了解更多相关信息。

[LeetCode] 172. Factorial Trailing Zeroes 求阶乘末尾零的个数

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

Example 1:

Input: 3
Output: 0
Explanation: 3! = 6, no trailing zero.

Example 2:

Input: 5
Output: 1
Explanation: 5! = 120, one trailing zero.

Note: Your solution should be in logarithmic time complexity.

Credits:
Special thanks to @ts for adding this problem and creating all test cases.

这道题并没有什么难度,是让求一个数的阶乘末尾0的个数,也就是要找乘数中 10 的个数,而 10 可分解为2和5,而2的数量又远大于5的数量(比如1到 10 中有2个5,5个2),那么此题即便为找出5的个数。仍需注意的一点就是,像 25,125,这样的不只含有一个5的数字需要考虑进去,参加代码如下:

C++ 解法一:

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

Java 解法一:

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

这题还有递归的解法,思路和上面完全一样,写法更简洁了,一行搞定碉堡了。

C++ 解法二:

class Solution {public:    int trailingZeroes(int n) {        return n == 0 ? 0 : n / 5 + trailingZeroes(n / 5);    }};

Java 解法二:

public class Solution {    public int trailingZeroes(int n) {        return n == 0 ? 0 : n / 5 + trailingZeroes(n / 5);    }}

Github 同步地址:

https://github.com/grandyang/leetcode/issues/172

类似题目:

Number of Digit One

Preimage Size of Factorial Zeroes Function    

参考资料:

https://leetcode.com/problems/factorial-trailing-zeroes/

https://www.zzm8.com/d/file/p/2021080221064921335/2021080221064921336

https://www.zzm8.com/d/file/p/2021080221065021337/2021080221065021338

到此这篇关于C++实现LeetCode(172.求阶乘末尾零的个数)的文章就介绍到这了,更多相关C++实现求阶乘末尾零的个数内容请搜索趣讯吧以前的文章或继续浏览下面的相关文章希望大家以后多多支持趣讯吧!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 55@qq.com 举报,一经查实,本站将立刻删除。转转请注明出处:https://www.szhjjp.com/n/9175.html

(0)
nan
上一篇 2021-08-02
下一篇 2021-08-02

相关推荐

发表回复

登录后才能评论