求c++代码
来源:百度知道 编辑:UC知道 时间:2024/05/30 01:46:27
求N!结尾零的个数,例如,10!=3628800,有2个零
输入有多组测试数据,每组一行,每行只有一个整数N(1<=N<=1000000)
输出每组测试数据输出一行,表示有几个0
输入有多组测试数据,每组一行,每行只有一个整数N(1<=N<=1000000)
输出每组测试数据输出一行,表示有几个0
如下,其实不难,自己仔细思考一下
#include <iostream>
using namespace std;
int main( )
{
int n, s;
while ( cin >> n )
{
s = 0;
while ( n / 5 )
{
n /= 5;
s += n;
}
cout << s << endl;
}
return 0;
}
这个方法最简单的了。不需要求出阶乘就知道0的个数
#include <cstddef>
#include <iostream>
using namespace std;]
int ntrailingzero(int n)
{
int cnt = 0;
while ( n /= 5 )
{
cnt += n; //计算N!结尾零的个数
}
return cnt;
}
int main()
{
int total = 0;
int number;
cin>>number;
total = ntrailingzero(number);
cout<<"N!结尾零的个数:"<<total<<endl;
system("pause");
return 0;
}