leetcode 172. 阶乘后的零 c++

阶乘后的零是因为5乘以一个偶数的结果,所以5的个数,决定了阶乘后零的个数。

但是怎样查看阶乘中5的个数呢,要根据因式分子

例如n=30,30!=1*2*3*4*5*6*7*8*9*10*...*30;

里面有多少个为5的因式分子的,先看里面有多少个元素可以整除5,有5,10,15,20,25,30共6个这个6是怎么求出来的呢?

6=30/5;然后在这六个元素里分别提取分式因子5,可以提取出六个,提取后变成1,2,3,4,5,6,然后看这六个里面有多少个元素可以整除5,6/5=1,所以有一个元素5还可以继续提取出一个因式分子5,这样就可以看出30!中总共包括7个因式分子5.,所以有7个零

代码如下:

 

 

1 class Solution {
2 public:
3    int trailingZeroes(int n) {
4         int num=0;
5         while(n)
6         {
7             num+=n/5;
8             n=n/5;
9         }
10         return num;
11     }
12 };

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值