天天看点

末尾0的个数_晶_didi_20160918

题目描述

输入一个正整数n,求n!(即阶乘)末尾有几个0?比如n=10,n!=3628800,所以答案为2.

输入描述:

|| 输入为一行, n(1≤1≤1000) 

输出描述:

|| 输出为一个整数,即题目所求。

源代码如下:

#include <iostream>
using namespace std;

int jiecheng(int );

int main()
{
    cout<<"输入一个正整数:"<<endl;
    int n;

    while(cin>>n)
    {
        cout<<n;

        long long nJ = jiecheng(n);  

        int num = ;
        long long  J = nJ;
        while(J %  == )
        {
            ++num;
            J = J/;
        }
        cout<<"!为: "<<nJ<<",  "<<"末尾有";
        cout<<num<<"个0。"<<endl;
    }
    return ;
}
//递归求阶乘
int jiecheng(int n)
    {
        if(n==)
            return ;
        return n * jiecheng(n-);
    }
//循环求阶乘
int jiecheng2(int n)
{
    int jc=;
    int i= ;
    while(i<=n)
        jc *=i;
    return jc;
}
           

继续阅读