题解 | #求表达式 f(n)结果末尾0的个数#

求表达式 f(n)结果末尾0的个数

http://www.nowcoder.com/practice/b6b63d3c0ff140a481b4f9acda922503

//方法:
    //计算i的乘积因子中5的个数
    //计算从i!到n!中i的个数
    //两者相乘就是为阶乘因子中5的个数即末尾0的个数
import java.util.*;
public class Main {
    public static int count(int num,int n){
        int cnt=0;//记录num中乘积因子可以有多少个n
        while(num>=n && num%n==0){//必须是大于n,并且可以整除n
            cnt++;
            num/=n;//继续除以n,判断缩小n倍之后的数有多少个n乘积因子

        }
        return cnt;
    }
    public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        int n=scanner.nextInt();//输入n,代表从1!到n!的乘积
        int num5=0;//阶乘因子中5的个数
        for(int i=5;i<=n;i++){//直接从5开始判断
            num5+=count(i,5)*(n-i+1);//每一次循环都要计算i的乘积因子中包含5的个数再乘上从i!到n!的乘积因子中i的个数,这个乘积就是阶乘因子中5的个数
        }
        System.out.println(num5);
    }
}


全部评论

相关推荐

wuwuwuoow:Redisson 写错了,记得 Redis 儿子以后都不会写错。其他没啥问题,海投就行。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务