C++中求100的阶乘的末尾包含多少个0?

程序通过找出1~100之间的所有整数中包含5这个因子的个数来求解。如100=5*5*4含5的因子个数为2,在求阶乘的过程中末尾产生两个0。下面是给出的题目,想了很久都想不... 程序通过找出1~100之间的所有整数中包含5这个因子的个数来求解。如100=5*5*4含5的因子个数为2,在求阶乘的过程中末尾产生两个0。
下面是给出的题目,想了很久都想不通,在_____中输入合适的东西
#include"iostream.h"
void main()
{
int m,n,k=0;
for(m=5;m<=100;)
{_____;
while(n%5==0)
{k++;
_____;
}
_____;
}
cout<<"100!Include"<<k;
}
展开
 我来答
听不清啊
高粉答主

2015-10-21 · 说的都是干货,快来关注
知道顶级答主
回答量:7.8万
采纳率:89%
帮助的人:1.9亿
展开全部

一个连乘积中有一个5乘以一个2,就会在末尾有一个0。一个自然数的阶乘末尾的0的个数,就等于它的所有乘数中含有因子5的个数,这是因为因子2的个数比因子5的个数明显要多的缘故。例如,20!、21!、22!、23!、24!的末尾都是有4个0,但是25!末尾会有6个0。因为25中含有2个因子5。

#include<stdio.h> 

int main() 

int n=100,s=0; 

while(n>0)

{

s+=n/5;        //每5个连续整数中就有一个5的倍数

n/=5;            //每25个连续整数中就有一个25的倍数,…………

}

printf("100!末尾有 %d 个0\n",s); 

system("pause"); 

return 0; 

}

百度网友6452b3628
2007-09-14 · TA获得超过1.7万个赞
知道大有可为答主
回答量:4881
采纳率:0%
帮助的人:5302万
展开全部
#include"iostream.h"
void main()
{
int m,n,k=0;
for(m=5;m<=100;)
{n=m;//n初始为5到100中的每个数
while(n%5==0)
{k++;
n/=5;//n中去掉一个5因子
}
m++;//有了这个循环才能正常结束
}
cout<<"100!Include"<<k;
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
frontstreet51
2007-09-14 · 超过34用户采纳过TA的回答
知道答主
回答量:126
采纳率:0%
帮助的人:118万
展开全部
依次为
n=m
n=n/5
m++

这是由于,100!中每个4*5的出现都会造成一个零。比如5*4=20*(5*4)=400*(5*4)...显然一个数包含4的因子数必然多于5。4一定够用
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zubyzuby
2007-09-14 · TA获得超过1539个赞
知道小有建树答主
回答量:1118
采纳率:100%
帮助的人:1208万
展开全部
#include"iostream.h"
void main()
{
int m,n,k=0;
for(m=5;m<=100;)
{
n=m;
while(n%5==0)
{k++;
n=n/5;
}
m=m+5;
}
cout<<"100!Include"<<k;
}

24个0
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
丁丁爱璐璐
2007-09-14 · TA获得超过263个赞
知道小有建树答主
回答量:641
采纳率:0%
帮助的人:0
展开全部
100*90*80.....*10
有11个0,呵呵。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式