求n!末尾0的个数

转载 2007年10月03日 16:26:00

思考: 该题实际上是求(2 5)因子对的个数。对于任意一个阶乘,5因子的个数总是小于2因子的个数,仅需考虑n!中5因子的个数

方法:  
 (1) 将该数用 5 除, 得到的商取整数。  
 (2) 然后再用所得商当被除数除以 5,得到的商取整数。  
 (3) 持续做到商等于 0 为止。  
 (4) 过程中的商加总即为阶乘的尾数 0 的个数。  
 
 例: 1234! 的尾数 0 的个数计算如下: 代码:
   1234/5  = 246
   246/5  = 49
   49/5  = 9
   9/5  = 1
   1/5  = 0  
 ------ ---------- 305

原理:
 行(1)得到的是1~~~n中因子含5的数的个数
 行(2)得到的是1~~~n中因子含25的数的个数
   .
   .
 行(n)得到的是1~~~n中因子含5^n的数的个数

 将这些数进行累计就得到了5因子的个数,也就是末尾0的个数。

Attachment :my code

#include <stdio.h>

int main()
{
 int i, n;

 scanf("%d", &n);
 for(i=0; i<n; i++)
 {
  int temp;
  int cnt = 0;
  
  scanf("%d", &temp);
  while(temp != 0)
   cnt += (temp = temp/5);
  
  printf("%d/n", cnt);
 }
}

 

相关文章推荐

数学基础:HUD1124-Factorial(N!末尾0的个数)

FactorialProblem DescriptionThe most important part of a GSM network is so called Base Transceiver S...

求N!末尾0的个数

此题n的取值可能很大,甚至会达到亿,这里我们区最大范围2000000000(2*10^9)。 分析一: 乘积末尾的0的个数依赖于因子中的2的个数和5的个数。对于阶乘来说,每2个数字就至...
  • HK_JH
  • HK_JH
  • 2013-04-13 21:43
  • 603

求N!末尾有多少个0

求N!末尾有多少个0 /*思考: 该题实际上是求(2 5)因子对的个数。对于任意一个阶乘,5因子的个数总是小于2因子的个数,仅需考虑n!中5因子的个数 方法:   (1) 将该数用 ...

求阶乘N!末尾0的个数

POJ上有这个题目。http://poj.org/problem?id=1401。去掉一大堆没有用的信息,POJ的描述如下:For example, they defined the function...

算法---面试题/--求N的阶乘N!中末尾0的个数

】–给定一个整数N,那么N的阶乘N!末尾有多少个0呢?例如:N=10,N!=3 628 800,N!的末尾有两个0 分析: 1)、如果N是一个很大的数,它的阶乘可能已超出计算机所能计算的最大范围,...

一步一步写算法(之n!中末尾零的个数统计)

【 声明:版权所有,欢迎转载,请勿用于商业用途。  联系信箱:feixiaoxing @163.com】     在很多面试的题目中,求n!结果中零的个数也是经常遇到的一道题目。那么这道题目...

计算阶乘n!末尾所含0的个数

问题描述给定参数n(n为正整数),请计算n的阶乘n!末尾所含有“0”的个数。例如,5!=120,其末尾所含有的“0”的个数为1;10!= 3628800,其末尾所含有的“0”的个数为2;20!= 24...

计算n!末尾所含0的个数

计算阶乘n!末尾所含0的个数 问题描述 给定参数n(n为正整数),请计算n的阶乘n!末尾所含有“0”的个数。 例如,5!=120,其末尾所含有的“0”的个数为1;10!= 3628800,其末尾所含有...

n的阶乘末尾还有多少个0

n! 末尾有多少个 0 个人信息:就读于燕大本科软件工程专业 目前大三; 本人博客:google搜索“cqs_2012”即可; 个人爱好:酷爱数据结构和算法,希望将来从事算法工作为人民作出自己...

算法->编程之美2.2 N!末尾有多少个0

N的阶乘末尾有多少个0 思考:0来自何方? 10*10*10*。。。乘以10就会产生0。 那么N!可以写成下面这种形式: 且K不能被10整除,那么N!的末尾就有M个0。 那么M是多少呢=...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)