博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[LeetCode] Factorial Trailing Zeroes 求阶乘末尾零的个数
阅读量:6670 次
发布时间:2019-06-25

本文共 963 字,大约阅读时间需要 3 分钟。

 

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

Note: Your solution should be in logarithmic time complexity.

Credits:

Special thanks to  for adding this problem and creating all test cases.

 

这道题并没有什么难度,是让求一个数的阶乘末尾0的个数,也就是要找乘数中10的个数,而10可分解为2和5,而我们可知2的数量又远大于5的数量,那么此题即便为找出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);    }}

 

参考资料:

 

转载地址:http://evoxo.baihongyu.com/

你可能感兴趣的文章
了解 Resource Timing 及相关
查看>>
Linux 网络管理(3) - DNS的正、反解查询命令:host、nslookup、dig
查看>>
JavaScript 的可选分号
查看>>
谈谈JavaScript异步代码优化
查看>>
一文掌握关于Java数据结构所有知识点(欢迎一起完善)
查看>>
1.JSP-UEditor实现上传图片到项目外(SSM)
查看>>
2018三月个人前端社招面试经验总结
查看>>
Mysql索引失效的几种情况
查看>>
爬虫 Scrapy 学习系列之一:Tutorial
查看>>
WPF:Animation动画--KeySplineAnimation关键帧进度控制动画(2)
查看>>
【356天】每日项目总结系列093(2018.01.27)
查看>>
Node.js学习之路03——Buffer类初识
查看>>
bootstrap常用样式整理
查看>>
webpack从零开始第5课:模块篇
查看>>
一起学设计模式 - 迭代器模式
查看>>
Docker实践 - 超简单配置Ftp服务
查看>>
惊群问题及解决
查看>>
Javascript面向对象从入门到重新入门--关于继承
查看>>
python __new__ 和 __init__
查看>>
SpringCloud(第 025 篇)Zuul 路由后面的微服务挂了后,Zuul 提供了一种回退机制来应对熔断处理...
查看>>