末尾0的个数_晶_didi_20160918

来源:互联网 发布:linux c opengl 编辑:程序博客网 时间:2024/05/29 14:19

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

输入描述:
|| 输入为一行,n(111000) 
输出描述:
|| 输出为一个整数,即题目所求。

源代码如下:

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