• 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;
    }
    


  • 相关阅读:
    数据库知识总结
    servlet总结
    创建Dynamic Web Project工程
    Python--(爬虫与数据库的连接)
    Mongodb数据库操作
    Python Web(Django)连接SQL SERVER
    Python操作MySql
    Python(Django)项目与Apache的管理交互
    Python Django连接(听明白了是连接不是创建!)Mysql已存在的数据库
    Python selenium自动化网页抓取器
  • 原文地址:https://www.cnblogs.com/slgkaifa/p/7221137.html
Copyright © 2020-2023  润新知