n的阶乘尾数有几个0

简介: n的阶乘尾数有几个0
/*
 n!尾数有几个0 
*/
#include <iostream>
using namespace std;
void find0(int n); 
int find(int i,int n);
int main(void)
{
  int n;
  cin>>n;
  find0(n); 
  return 0;
}
void find0(int n)
{
  int cnt5=0,cnt2=0; 
  //分析
  /*
  每次产生一个0有
  2*5=10;
  10=2*5;
  */ 
  for(int i=1;i<=n;i++){
  //    cnt2+=find(i,2); 
      cnt5+=find(i,5);
  } 
  //cout<<"尾数有"<< (cnt5>cnt2?cnt2:cnt5)<<"个0"<<endl; 
    cout<<"尾数有"<< cnt5 <<"个0"<<endl; 
}
int find(int i,int n){
  int cnt=0;
  while(!(i%n)){
    cnt++;
    i=i/n;
  }
  return cnt;
}
相关文章
|
6月前
|
存储 C++
两数相加(C++)
两数相加(C++)
41 0
|
C语言
C语言之回文数的求解。回文数一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。
C语言之回文数的求解。回文数一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。
180 0
|
1天前
求一个整数的所有因数
【10月更文挑战第25天】求一个整数的所有因数。
9 5
|
13天前
两数相除,如果有余数,输出余数
【10月更文挑战第13天】两数相除,如果有余数,输出余数。
30 4
|
5月前
2.两数相加
2.两数相加
|
6月前
|
人工智能 算法
DAY-1 | 迭乘法、辗转相除法、试除法:最大公约数与最小公倍数问题
这段内容是一个关于计算两个数的最大公约数(Greatest Common Divisor, GCD)和最小公倍数(Least Common Multiple, LCM)的编程题目说明,包括题干、题解和方法总结。其中提到了两种方法:辗转相除法和试除法。辗转相除法通过不断用较大数除以较小数直到余数为零来求最大公约数,然后利用两数乘积除以最大公约数得到最小公倍数。试除法则是通过循环尝试两数的倍数是否同时能被两数整除来求解。在方法总结部分,还介绍了迭乘法求最小公倍数的方法。
67 0
|
机器学习/深度学习
什么是浮点数加减运算里的对阶,阶码和尾数
什么是浮点数加减运算里的对阶,阶码和尾数
|
12月前
|
存储
A除于B(大数相除)
A除于B(大数相除)
63 0
|
存储 Rust 算法
两数相加
两数相加
142 0
两数相加
大数的四则运算(加,减,乘,除)处理
大数的四则运算(加,减,乘,除)处理
520 0
大数的四则运算(加,减,乘,除)处理