Given an integer n, return the number of trailing zeroes in n!.
Note: Your solution should be in logarithmic time complexity.
题目的意思是给定一个整数n,求n的阶乘有多少个后缀0.
思路:n!=1*2*3*……*n,判断这个数有多少个后缀0,通过观察我们可以发现每当出现一个约数2和一个约数5,就可以产生一个后缀0,只要是偶数中都存在2这个约数,所以2的数目肯定比5多,所以只需要判断约数5的个数,就是所求。需要注意的是,25、50这样的约数里面含有2个约数5。
class Solution {
public:
int trailingZeroes(int n) {
int re=0;
while(n>=5)
{
n/=5;
re+=n;
}
return re;
}
};
照顾好自己的身体,控制好自己的情绪,加油!
以上就是关关关于这道题的总结经验,希望大家能够理解,有什么问题可以在我们的专知公众号平台上交流或者加我们的QQ专知-人工智能交流群 426491390,也可以加入专知——Leetcode刷题交流群(请先加微信小助手weixinhao: Rancho_Fang)。 同时请,关注我们的公众号,获取最新关于专知以及人工智能的资讯、技术、算法等内容。扫一扫下方关注我们的微信公众号。