`

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,然后...

    SQLServer多种去除尾数多余的0

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

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

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

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

    文章通过这种算法设计和C语言实现,提供了一种解决大数阶乘末尾非零数字的有效方法,特别适合处理超出C语言基本数据类型范围的阶乘计算。这种方法对于理解和优化计算大数阶乘的算法具有重要的教学和实践价值。

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

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

    2011国信蓝点杯试题

    末尾0的个数由5和2的因子对决定,因为10=2×5。因此,计算n!中因子5的个数即可,可以采用循环或递归方法,每次除以5并将商继续除以5,累计除法结果的个数。 三、字符串乘方 题目要求找出字符串s可以表示为某个字符...

    不要被阶乘吓倒(各种阶乘)

    使用位运算判断 n 是否大于 0 并且 n 与 (n - 1) 的按位与运算结果为 0。 ```c bool isPowerOfTwo(int n) { return n &gt; 0 && (n & (n - 1)) == 0; } ``` 通过以上讲解,相信读者能够更好地理解和掌握阶乘的相关...

    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开头的数的...

    求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