100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > N!的末尾有多少个0

N!的末尾有多少个0

时间:2020-11-22 23:14:32

相关推荐

N!的末尾有多少个0

N!的末尾有多少个0

已经很久没有打开过我的电脑的devC++了,而且可能有将近两年没有写过c++了,好怀念呀~

正好遇到一道题,看到了熟悉的C++代码,就来写一篇吧~

题目

50!的末尾有多少个0?

扩展:N!的末尾有多少个0?

思考

多数相乘末尾的0的个数 = 乘法中能够生成的10的个数

-> 10 = 2*5

-> 乘数里<2,5>的组合数

-> 连续的自然数中,2的倍数个数远大于5的倍数个数

-> 只需要求连续的N个数中能够生成5的数的个数

举例

50!的末尾有多少个0?

-> 1-50中能够生成5的数的个数:

1.首先,每5个数都能获得某个数是5的倍数,即有:5,10,15,20,25,30,35,40,45,50.

个数为:50/5

2. 其次,有一些数能够因式分解成2个5(在第一步算过一个5了):即25,50。

个数为: 50/5*5

4. 由于50以内的数不能因式分解成>=3个5,所以结束,结果为1和2步结果之和。

即结果为10+2=12.

代码

#include<iostream>using namespace std;int main(){int n;cin>>n;int res=0;while(1){if(n<5){break;}res+=n/5;n=n/5;}cout<<res;return 0;}

刚刚写代码的时候发现我之前某个时候因为电脑c盘内存不够把devC++卸载了,然后在在线编译器中写代码的时候,我真的真的好怀念啊,是熟悉的感觉,是DNA里的记忆吖~

要做一个永远都有情怀的程序员.

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。