C++实现求N的阶乘末尾0的个数

#include
#include
using namespace std;
int main()
{
    int n;
    cin>>n;
    int count=0;
   
   while(n)
   {
      count+=n/5;
      n/=5;
       
   }
    cout<<count<<endl;
    return 0;
    
}

扩展:求:S=1! * 2! *3! *… *n!的末尾有多少个0

#include
#include
using namespace std;
int J(long n)
{
   long count=0;
   while(n%5==0)
   {//超时
      count++;
      n/=5;
       
   }
   return count;
}
int main()
{
    int n;
    cin>>n;
    long count=0;
    for(int i=1;i<=n;i++)
    {
        count+=(n-i+1)*J(i);
    }
    cout<<count<<endl;
    return 0;
    
}

你可能感兴趣的:(计算机,c++)