zoukankan      html  css  js  c++  java
  • 1003 阶乘后面0的数量

    题目描述:

    n的阶乘后面有多少个0?

    6的阶乘 = 1*2*3*4*5*6 = 720,720后面有1个0。
    Input
      一个数N(1 <= N <= 10^9)
    Output

      输出0的数量

    每个数阶乘末尾的零是由前面阶乘数字中的因子2和因子5相乘而造成的,又因为5比2多,所以只需考虑5的个数。每隔5个数,会产生一个0,如5、10、15...;每隔25个数,会多产生一个0,即两个0,如25/50/75...;每隔125个数,会多产生一个0,即三个0,如125、625...等等。即每次将除以5后的数相加即可得到阶乘后面的数量。

    代码如下:

     1 #include<stdio.h>
     2 int main (void)
     3 {
     4     unsigned int a, b = 0;
     5     scanf("%d", &a);
     6     while(a != 0){    
     7         a = a / 5;
     8         b += a;
     9     }
    10     printf("%d", b);
    11     return 0;
    12 }
  • 相关阅读:
    第三周作业
    第二周作业
    第一周作业
    第三次作业
    第二次作业
    c语言最后一次作业
    第14、15教学周作业
    第七周作业
    第六周随笔
    第四周作业
  • 原文地址:https://www.cnblogs.com/clairvoyant/p/4862568.html
Copyright © 2011-2022 走看看