求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);
 }
}

 

求N的阶乘N!中末尾0的个数

有道问题是这样的:给定一个正整数N,那么N的阶乘N!末尾中有多少个0呢?例如:N=10,N=3628800,则N!的末尾有两个0;直接上干货,算法思想如下:对于任意一个正整数N!,都可以化为N!= ...
  • u013266697
  • u013266697
  • 2016年10月16日 22:05
  • 1232

2017滴滴校招 末尾0的个数(数学知识)

末尾0的个数 时间限制:1秒 空间限制:32768K 输入一个正整数n,求n!(即阶乘)末尾有多少个0? 比如: n = 10; n! = 3628800,所以答案为2  输入描述: 输入...
  • m0_37846371
  • m0_37846371
  • 2017年07月21日 13:50
  • 181

算法题:求N!末尾0的个数和求二进制数中1的个数

1、给定一个整数,那么N的阶乘N!末尾有多少个0呢? 解题思路:N!=K*10^M,M的值即为N!末尾0的个数。又10^M=(2^M)*(5^M),因为一个数进行质因数分解后,2出现的概率比5大得多...
  • Bubble1210
  • Bubble1210
  • 2016年03月16日 22:35
  • 1160

求N!末尾的0的个数(找规律+递归)

0\'s Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描述 计算整数n!(n的阶乘)末尾有多少个0。 输入 第一行输入一...
  • qq_16255321
  • qq_16255321
  • 2014年07月20日 16:49
  • 1651

(ACM数论)求N的阶乘末尾有多少个0

问题描述:给定一个整数N,那么N的阶乘N!末尾有多少个0?这个问题的难点在于,不能直接计算出N!,因为会溢出。既然不能直接计算,那就换个姿势计算(手动滑稽)首先,我们考虑到N!末尾0的个数和 N!有多...
  • KasumiMasami
  • KasumiMasami
  • 2016年08月29日 16:23
  • 977

(java)求N阶乘末尾0的个数

在logn的时间内 找到n!末尾有几个零 首先,要清楚 n!末尾有几个零是由这个数字的质因子中有几个成对的2 和5 决定的。我们又知道n! = n(n-1)(n-2)...... 1 ,不难看出随着...
  • chaiqunxing51
  • chaiqunxing51
  • 2016年03月23日 11:41
  • 492

n!阶乘末尾有多少个零0

题目: 初阶:1*2*3*……*100 求结果末尾有多少个零。 进阶: N的阶乘末尾有多少个0分析: 一般类似的题目都会蕴含某种规律或简便方法的阶乘末尾一个零表示一个进位,则相当于乘以10而10...
  • TommyZht
  • TommyZht
  • 2015年06月01日 13:46
  • 2198

C++练习之求N!末尾零的个数

需求就是求N!末尾零的个数, 因为没有确定N为多少, 但当N大于12时  int 型 已经存不下了, 所以不能求出来N的阶乘再看有多少个0, 所以最后决定根据 5的个数来确定末尾0的个数, ...
  • lx417147512
  • lx417147512
  • 2013年05月06日 22:23
  • 1075

[滴滴校招]末尾0的个数

题目:输入一个正整数n,求n!(即阶乘)末尾有多少个0? 比如: n = 10; n! = 3628800,所以答案为2 输入描述: 输入为一行,n(1 ≤ n ≤ 1000)输出描述: 输出...
  • wangwenhao00
  • wangwenhao00
  • 2017年01月18日 10:38
  • 644

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

这是一个有趣的问题。 例如,5!=120,其末尾所含有的“0”的个数为1;10!= 3628800,其末尾所含有的“0”的个数为2;20!= 2432902008176640000,其末尾所含有的“...
  • waitfor_
  • waitfor_
  • 2012年01月21日 13:58
  • 3956
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:求n!末尾0的个数
举报原因:
原因补充:

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