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