• nyoj84 阶乘的0


    阶乘的0

    时间限制:3000 ms  |  内存限制:65535 KB
    难度:3
    描写叙述
    计算n!的十进制表示最后有多少个0
    输入
    第一行输入一个整数N表示測试数据的组数(1<=N<=100)
    每组測试数据占一行。都仅仅有一个整数M(0<=M<=10000000)
    输出
    输出M的阶乘的十进制表示中最后0的个数
    比方5!=120则最后的0的个数为1
    例子输入
    6
    3
    60
    100
    1024
    23456
    8735373
    例子输出
    0
    14
    24
    253
    5861
    2183837

    解题思路:由于在质数中。仅仅有2和5相乘才会在尾部出现一个"0"。那么仅仅要将m分解质因数,然后统计2和5的个数,当中较小的一个就是答案。


    进一步来说,m分解质因数之后,2的个数绝对照5多。
    那么问题进一步简化,仅仅要统计出全部的质因数中有多少个5就可以。

    比如:

    1-->100中5的倍数

    有 5 ,10,15,20,25,30,35,40,45,50,55,60,65,70,75,80,85,90,95,100.

       20 个5

    可是除以5后还有可分解为5的

                            5                       10                     15                      20

    此时有4个5

    就是说1-->100共同拥有24个5;即所求的0的个数

    代码运用递归求5的个数:例如以下:

    #include <stdio.h>
    int Count=0;//计数
    int factorial(int m)
    {
    	if(m==0) 
    		return Count;
    	else
    	{
    		Count+=m/5;
    		return factorial(m/5);
    	}
    }
    int main()
    {
    	int m;
    	int n;
    	scanf("%d",&n);
    	while(n--)
    	{
    		Count=0;
    		scanf("%d",&m);
    		printf("%d
    ",factorial(m));//递归操作实现
    	}
    	return 0;
    }
    


  • 相关阅读:
    爬虫实践-微博关键词搜索抓取
    爬虫实践-拉勾网测试经理JD抓取【2018.05.15】
    爬虫实践--租房信息查找
    服务器python发送mail无法发出问题
    我的面试流程梳理
    字典树模板(前缀查找、整串查找)
    搬运工程 启动!
    开始收集模板啦!
    WPS表格中不能输入中文 or其他
    ubunt命令
  • 原文地址:https://www.cnblogs.com/slgkaifa/p/7221137.html
Copyright © 2020-2023  润新知