zoukankan      html  css  js  c++  java
  • 阶乘的0

     

    阶乘的0

    时间限制:3000 ms  |  内存限制:65535 KB
    难度:3
     
    描述
    计算n!的十进制表示最后有多少个0
     
    输入
    第一行输入一个整数N表示测试数据的组数(1<=N<=100)
    每组测试数据占一行,都只有一个整数M(0<=M<=10000000)
    输出
    输出M的阶乘的十进制表示中最后0的个数
    比如5!=120则最后的0的个数为1
    样例输入
    6
    3
    60
    100
    1024
    23456
    8735373
    样例输出
    0
    14
    24
    253
    5861
    2183837
    方法一:  
     1 #include<iostream>
     2 using namespace std;
     3 #define max 10000000
     4 int a[max];
     5 int main()
     6 {
     7        int i,N,k;
     8        a[0]=0;
     9        for(i=1;i<max;i++)
    10       {
    11              k=i/5;
    12             a[i]=k+a[k];//a[i]表示i!中含有多少个因子5
    13       }
    14       cin>>N;
    15       while(N--)
    16       {
    17             int n;
    18             cin>>n;
    19             cout<<a[n]<<endl;//多少个因子5就有多少个0
    20       }
    21       return 0;
    22 }
            
       
    法二 
     1 #include<iostream>
     2 using namespace std;
     3 int GetP(int x, int p)
     4 {
     5    int res = 0;
     6     while (x)
     7     {
     8         res = res + x / p;
     9          x = x / p;
    10     }
    11     return res;
    12 }
    13 int main()
    14 {
    15  int nn,m;
    16  cin>>nn;
    17  while(nn--)
    18  {
    19   cin>>m;
    20   cout<<GetP(m,5)<<endl;
    21  }
    22 }
                    
  • 相关阅读:
    PV、UV、GMV
    保存Hive查询结果的方法 insert overwrite 用法
    Hive substr 函数截取字符串
    HIVE中join、semi join、outer join
    Hive 差集运算
    gitlab和github区别
    前端工程化 ESlint 配置
    ES6 WeakMap Map 区别
    js 创建数组方法以及区别
    eslint for...in 报错处理
  • 原文地址:https://www.cnblogs.com/hpuwangjunling/p/2432026.html
Copyright © 2011-2022 走看看