`

n!末尾0的个数

 
阅读更多
总时间限制:
1000ms
内存限制:
65535kB
描述
给定一个正整数N,那么N的阶乘N!末尾有多少个0呢?例如:N=10,N!=3 628 800,N!的末尾有两个0。

注意:N<=100,000,000。
输入
第一行为N,表示有N个输入。接下来有N行,每一行包括一个正整数。
输出
对于每个输入,每行输出结果。
样例输入
2
5
10
样例输出
1
2

这是一个简单的题,但是想要直接一个个乘出来,再来计算末尾0绝对行不通。

     仔细想想,末尾0的个数最大关系是和5有关,一个5对应一个0,所以只要计算出

总数里面能拆出多少个5 ;另外循环式,应该让i每次增加5,不然会超时。

       

#include<iostream>
#include<cstdlib>
using namespace std;
int n ;
int count(int index)
{    int sum = 0 ;
     if(index%5==0)
     {
         sum++ ;
       sum += count(index/5) ;
     }
     return sum ;
}
int main()
{
  int t ;
  cin>>t ;
  while(t--){
  int i=5,sum=0;
  cin>>n ;
  if(n<5)
  {
      cout<<0<<endl ;
      continue  ;
  }
  while(i<=n)
  {
  sum += count(i) ;
   i = i +5 ;
   }
 cout<<sum<<endl ;
  }
  return 0 ;
}

 

分享到:
评论

相关推荐

    求n!末尾0的个数

    求n!数的末尾0的个数.用c语言实现。 简单方便

    C++版本计算n阶乘末尾0的个数原理讲解及代码实现

    ### C++版本计算n阶乘末尾0的个数原理讲解及代码实现 #### 概述 本篇文章主要介绍如何使用C++编程语言来计算一个正整数n的阶乘末尾0的数量,并通过示例代码加以说明。该方法不仅阐述了理论基础,还提供了具体的实现...

    n的阶乘末尾有多少个0_n的阶乘末尾的0_

    在给定的文件列表中,“n的阶乘末尾有多少个0.cpp”可能是实现这个算法的C++源代码,而“n的阶乘末尾有多少个0.exe”是编译后的可执行文件,用于直接运行程序并得到结果。 通过这种方法,我们可以有效地处理大数...

    n的阶乘问题--阶乘位数--阶乘末尾0的个数

    本文将深入探讨“n的阶乘问题”,包括阶乘的定义、计算阶乘位数的方法以及如何确定阶乘末尾零的个数。 首先,阶乘是指一个正整数n与小于等于它的所有正整数的乘积。用数学符号表示为`n! = n × (n-1) × (n-2) × ....

    C语言编程训练:循环结构-求阶乘末尾零个数

    输入的第一行是一个单个的确定的正整数T,他指名接下来的数字的个数,然后是 T 行,每一行包括一个确定的正整数N,1&lt;=N,000,000,000。 【输出说明】 对每一个数字N,产生一行输出包括一个非负整数Z(N)。 【样例输入...

    C++计算一个数字的二进制中0或1的个数原理及代码

    printf("\n数字%d的二进制数中,0的个数为%d个,1的个数为%d个\n", nData, nSum_Zero, nSum_One); return 1; } ``` **代码解析:** - **主函数**:`main()`函数首先定义了一个整数变量`nData`并赋值为300,然后...

    用C语言实现n!最后一位非零数字的算法与程序分析.pdf

    (n为较大整数),会遇到两个主要问题:一是大数的计算难度,二是阶乘结果末尾非零数字的确定。后者尤其对于某些特定的算法优化至关重要,例如在统计学中寻找排列数的非零位。 本文旨在探讨如何用C语言高效地实现一...

    SQLServer多种去除尾数多余的0

    在SQL Server中,处理数值类型的数据时,特别是浮点数(float)或定点数(decimal, numeric),我们可能会遇到一个问题:当数值末尾有过多的零时,它们并不总是直观地显示出来。尤其是在进行计算或者存储后,这些零...

    刷题遇到的一些题目(Java)——持续更新

    1. 末尾0的个数——滴滴笔试题 题目描述:输入一个正整数n,求n!(即阶乘)末尾有多少个0? 比如: n = 10; n! = 3628800,所以答案为2 原题链接:...

    java阶乘计算获得结果末尾0的个数代码实现

    在Java编程中,计算阶乘并...总结一下,确定阶乘末尾零的个数关键在于找到n中因子5的总数。对于较大的n,这个方法不仅效率高,而且节省了计算资源。在实际编程中,理解和应用这种策略对于优化算法和解决问题至关重要。

    c语言编程题之数学问题阶乘后的0.zip

    printf("%d的阶乘末尾有%d个0\n", num, zeros); return 0; } ``` 这个程序首先定义了一个`countTrailingZeros`函数,它通过循环计算5的幂并累加n能被这些幂整除的次数来找到零的个数。在`main`函数中,用户输入一...

    江苏省江阴市��山湾实验学校创新2班2015_2016学年七年级数学上学期期中试题苏科版

    末尾是0,之后的阶乘末尾都是0。所以,1!+2!+3!+…+10!的末尾数为5。 11. **科学记数法**:将803万转换成科学记数法,即8030000=8.03×10^6。 12. **同类项**:同类项指的是字母相同,指数相同的项。根据“单项式...

    千万不要被阶乘吓倒

    中因子2的个数等于N减去1的个数。 总结,理解和巧妙地处理阶乘问题不仅可以提升我们的编程技巧,还能锻炼我们的逻辑思维和问题解决能力。在实际应用中,了解这些方法可以帮助我们编写更高效、更节省资源的代码。...

    2019 年海淀区青少年程序设计挑战活动复赛 小学组 C++语言试题(只有题目,无相关测试文件)

    - **定义:** 如果一个正整数 \( n \) 能够被另一个正整数 \( d \) 整除(即 \( n \mod d = 0 \)),则称 \( d \) 是 \( n \) 的约数。 - **性质:** 对于任何正整数 \( n \),1 和 \( n \) 本身都是 \( n \) 的约数...

    usaco3.2解题报告1

    它可以通过递归关系`sizeofset(n, m) = sizeofset(n-1, m) + sizeofset(n-1, m-1)`计算,其中基数情况是`sizeofset(0, m) = 1`。 - 为了找到第i小的满足条件的二进制数,我们需要找到一个分割点,使得以0开头的数的...

    C语言竞赛题

    选择法排序算法的基本原理是:在未排序序列中找到最小(或最大)元素,存放到排序序列的起始位置,然后再从剩余未排序元素中继续寻找最小(或最大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序...

    求1000阶乘的结果末尾有多少个0

    3. **结束条件**:由于每次2的因子都会找到一个与之匹配的5的因子(除了那些包含额外5因子的数),我们只需要计算`count5`来确定末尾零的个数。因为对于每一对2和5,它们会产生一个10,也就是一个零。然而,由于可能...

    10.4.3二项式定理 的应用.doc

    7. 求解一个数的末尾连续零的个数通常涉及到因数5的个数,需要更具体的信息才能解答。 8. 若(a + b)^n = a^n + b^n,那么n必须为0或1,因为这是唯一能使加法变为乘法的情况。 9. 要证明2^n能被64整除,需要n至少为6...

Global site tag (gtag.js) - Google Analytics