题目描述
输入一个正整数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;
}