本文主要是介绍LeetCode Factorial Trailing Zeroes数学方法详解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Given an integer n, return the number of trailing zeroes in n!.
题目的意思是要求一个整数的阶乘末尾有多少个0;
1.需要注意的是后缀0是由2,5相乘得来,因此只需看有多少个2,5即可
n = 5: 5!的质因子中 (2 * 2 * 2 * 3 * 5)包含一个5和三个2。因而后缀0的个数是1。
n = 11: 11!的质因子中(2^8 * 3^4 * 5^2 * 7)包含两个5和三个2。于是后缀0的个数就是2。
2质因子中2的个数总是大于等于5的个数。因此只要计数5的个数就可以了。
例如: 11中有两个5因此输出2.可用 n/5=2;
3.需要注意的是25中有25,20,15,10,5,但是25又可以分为5*5,
因此需要判断t=n/5后中t的5个数
AC代码如下:
class Solution {
public:int trailingZeroes(int n) {int count=0;while (n) { //count the number of factor 5;count+=n/5;n/=5;}return count;}
};
这篇关于LeetCode Factorial Trailing Zeroes数学方法详解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!