展开全部
编程输入n(n<=1000),求n的阶乘值(n!)尾部有5个连续的0。
集体过程如下:
int c10, c5, c2; //分别是10、5、2的个数
for(int i=2;i<=n;i++) {
int x=i;
while( x%10==0 ) {
c10++;
x/=10;
}
while( x%5==0 ) {
c5++;
x/=5;
}
while( x%2==0 ) {
c2++;
x/=2;
}
}
return c10 + (c5<c2?c5:c2); //这就是后续0的个数
扩展资料:
编译方式下,首先通过一个对应于所用程序设计语言的编译程序对源程序进行处理,经过对源程序的词法分析、语法分析、语意分析、代码生成和代码优化等阶段将所处理的源程序转换为用二进制代码表示的目标程序。
然后通过连接程序处理将程序中所用的函数调用、系统功能调用等嵌入到目标程序中,构成一个可以连续执行的二进制执行文件。调用这个执行文件就可以实现程序员在对应源程序文件中所指定的相应功能。
展开全部
int c10, c5, c2; //分别是10、5、2的个数
for(int i=2;i<=n;i++) {
int x=i;
while( x%10==0 ) {
c10++;
x/=10;
}
while( x%5==0 ) {
c5++;
x/=5;
}
while( x%2==0 ) {
c2++;
x/=2;
}
}
return c10 + (c5<c2?c5:c2); //这就是后续0的个数
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
等价于n!含有多少个素因数5
P()表示取整,即P(1.25)=1。
P(n/5)+P(n/25)+P(n/125)+P(n/625)+ ... +P(n/P(log5(n)))
P()表示取整,即P(1.25)=1。
P(n/5)+P(n/25)+P(n/125)+P(n/625)+ ... +P(n/P(log5(n)))
更多追问追答
追问
用C++语言编程出来。
追答
//P(n/5)+P(n/25)+P(n/125)+P(n/625)+ ... +P(n/5^P(log5(n)))
using namespace ;
long p,n,m;
cin>>n;
p=n;m=0;
while (p)
{
p/=5;
m+=p;
}
cout>>m;
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询