LeetCode 172 Factorial Trailing Zeroes
来源:互联网 发布:我国经济增长数据 编辑:程序博客网 时间:2024/06/14 08:29
题意是给一个数n,让你求出n的阶乘末尾0的个数,利用质因数分解可以将n的的阶乘看成多个质因数的幂相称的结果,其中,只有2和5相乘才会出现10,增加末尾零,因为2的个数远大于5,所以求末尾0的个数问题就转化为求n!中5的个数。
在n!中,只有5,10,15,20,25,30,35,40,45,50.。。。。这些5的倍数含有5,此为第一层。
在第一层中,25,50,75,,,,这些是5的多次幂,在第一层的基础上多包含了5
在第二层中,125,250,,,,,这些又在第二成的基础上多包含了5
.。。。。
依次递归求下去,可得求解函数。
题目链接
代码如下
class Solution {public: int trailingZeroes(int n) { int sum = 0; for (long long i = 5; i <= n; i *= 5) { sum += n/i; } return sum; }};
第一次写的代码,,,用的是正着乘上去的思路,但是总是有点误差,而且数还挺大,原来卡了个边界,当n正好为int边界,临近n之下的i的极限乘上5之后会超出int范围,导致误差,把i的类型改为long long 便可以过了。
之后将写法改成边除边加的思路,可以规避这个边界问题。
class Solution {public: int trailingZeroes(int n) { int ans = 0; while(n){ n /= 5; ans += n; } return ans; }};
阅读全文
0 0
- leetcode 172: Factorial Trailing Zeroes
- LeetCode(172) Factorial Trailing Zeroes
- [leetcode 172] Factorial Trailing Zeroes
- leetCode#172 Factorial Trailing Zeroes
- leetcode 172-Factorial Trailing Zeroes
- LeetCode[172]Factorial Trailing Zeroes
- [LeetCode][172][Factorial Trailing Zeroes]
- [LeetCode 172]Factorial Trailing Zeroes
- LeetCode 172: Factorial Trailing Zeroes
- leetcode-172 Factorial Trailing Zeroes
- Factorial Trailing Zeroes - LeetCode 172
- leetcode 172 Factorial Trailing Zeroes
- leetcode[172]:Factorial Trailing Zeroes
- 【Leetcode】 Factorial Trailing Zeroes #172
- leetcode-172-Factorial Trailing Zeroes
- [leetcode 172] Factorial Trailing Zeroes
- Leetcode #172 Factorial Trailing Zeroes
- LeetCode 172 Factorial Trailing Zeroes
- python实现发送邮件
- MySQL定义处理程序
- 自主编程实现哈希表
- 判断版本,并给出提示
- ie浏览器的设置
- LeetCode 172 Factorial Trailing Zeroes
- 自己做工具--封装PHP的PDO类--单例模式
- 第二十一天学习javahttp编程
- 使用maven构建dubbo服务的可执行jar包
- Codeforces Round #425 (Div. 2) D.Misha, Grisha and Underground
- linux 路由表设置 之 route 指令详解
- sturts-2.0动态方法测试,!不起作用?????
- leetcode(21). Merge Two Sorted Lists
- 【安卓基础】01项目目录