• 阶乘尾零


    题目描述

    请设计一个算法,计算n的阶乘有多少个尾随零。

    给定一个int n,请返回n的阶乘的尾零个数。保证n为正整数。

    测试样例:
    5

    返回:1

    时间限制:3秒空间限制:32768K

    解析:常规解法计算出结果之后再进行计算得到0的个数是时间超限的,因此应该寻求跟简单的方法,计算得到0的个数,可以理解成阶乘结果可以分解出多少个10相乘,而10又是2和5相乘的结果。因此,只要计算出1-n中有多少个2和5即可,因2的个数会远大于5的个数,即知道5的个数既可以得到0的个数。
    如100,100/5=20,20/5=4,4/5=0。因此100中5的个数为20+4+0=24个。
    public int getFactorSuffixZero(int n){
    		int count = 0;
    		while(n/5 != 0){
    			count += n/5;
    			n = n/5;
    		}
    		return count;
    	}
    

      

  • 相关阅读:
    IO-BufferedInputStream
    IO-FileOutputStream
    IO-FileWriter
    关于我
    并不知道取什么标题
    颓废日记
    笔记合集
    Codeforces Round #690 (Div. 3) 简要题解
    Codeforces 1470B Strange Definition
    Codeforces 1466E Apollo versus Pan
  • 原文地址:https://www.cnblogs.com/woniu4/p/4686091.html
Copyright © 2020-2023  润新知