求n!末尾零的个数

  • 格式:doc
  • 大小:32.00 KB
  • 文档页数:2

实验一求 N!的末尾零的个数
完整C++程序代码如下:
#include<iostream>
using namespace std;
int Fac_Zero(int N)
{
int n=N;
int flag=0,ans=0;
while(n/5) {n=n/5;flag++;}
int *five=new int[flag+1];
for(int i=1;i<flag+1;i++)
{
int j=i,p=1;
n=N;
while(j--) p=p*5;
five[i]=n/p;
cout<<endl<<"1到n中的"<<i<<"次方项有"<<five[i]<<" 个";
}
for(int i=1;i<flag+1;i++)
ans+=five[i];
return ans;
}
void main()
{
int n;
cout<<"please input a positive inter :";
cin>>n;
if(n>5) cout<<endl<<"n的阶乘的末位的零的个数为"<<Fac_Zero(n)<<endl;
else cout<<endl<<"n的阶乘的末位的零的个数为0"<<endl;
system("PAUSE");
}
经10以上测试,实验结果符合预期,证明了程序的正确性。

例如输入251,运行结果截屏如下:。