当前位置: 首页 > news >正文

网站文章在哪发布做seo站长统计官方网站

网站文章在哪发布做seo,站长统计官方网站,网站建设公司百家号,详情页设计风格java数据结构与算法刷题目录(剑指Offer、LeetCode、ACM)-----主目录-----持续更新(进不去说明我没写完):https://blog.csdn.net/grd_java/article/details/123063846 文章目录 数学:阶乘的10因子个数数学优化:思路转变为求5的倍数…
java数据结构与算法刷题目录(剑指Offer、LeetCode、ACM)-----主目录-----持续更新(进不去说明我没写完):https://blog.csdn.net/grd_java/article/details/123063846

文章目录

    • 数学:阶乘的10因子个数
    • 数学优化:思路转变为求5的倍数的个数

在这里插入图片描述

数学:阶乘的10因子个数

解题思路:时间复杂度O( n n n),n为5的个数,空间复杂度O( 1 1 1)
  1. 如果想要求出阶乘,一定会超时。所以我们要找到破题点。就是什么条件下阶乘末尾会出现0。
  2. 我们发现阶乘结果求出来后,不断的提出因子10,能提出多少次,就有几个0. 例如5!=120. 此时进行因式分解为: 10 ∗ ( 12 ) . 10*(12). 10(12).一共提出1个10,因此一共一个0.
  3. 10是由2和5构成的。而且5的个数绝对更少。例如120 = 5 ∗ ( 24 ) 5*(24) 5(24) = 2 ∗ 2 ∗ 2 ∗ ( 15 ) 2*2*2*(15) 222(15).我们发现5的个数决定了阶乘结果中可以和2组成几个10.
  4. 因此我们可以先尝试统计n的阶乘中,5的个数。试一下效果

我们不需要每个阶乘数字都统计,例如5!中只有5这个数会出现5.因为5!=1*2*3*4*5.明眼人都知道,1,2,3,4不会有5的出现。

代码:最起码通过了对吗,说明想法没错,接下来法二会继续优化

在这里插入图片描述

class Solution {public int trailingZeroes(int n) {int ans = 0;//统计5的个数for (int i = 5; i <= n; i += 5) {//只有5,10,15,20,25....会出现5,其它数字不会出现5for (int x = i; x % 5 == 0; x /= 5) {//统计这些因子中的5的个数。例如100这个因子,可以拆解为5*5*4.有两个5++ans;//5的个数}}return ans;}
}

数学优化:思路转变为求5的倍数的个数

解题思路:时间复杂度O( l o g 2 n log_2n log2n),空间复杂度O( 1 1 1)
  1. 以1000为例:1000 = 5 ∗ 200 5*200 5200 = 5 ∗ 5 ∗ 40 5*5*40 5540 = 5 ∗ 5 ∗ 5 ∗ 8 5*5*5*8 5558 = 5 ∗ 5 ∗ 5 ∗ 5 ∗ 8 5 5*5*5*5*\dfrac{8}{5} 555558.则1000的阶乘的5的个数为200+40+8+1 = 249个
  2. 为什么对单个数字1000不断除5,可以求出1000的阶乘中5的个数呢?
  3. 因为我们需要转变思路,从现在开始,我们要统计从1到1000中,5的倍数出现的次数。
  1. 1到1000中,5的倍数出现200次, 200个5的倍数分别是 5 , 10 , 15 , 20 , . . . . . , 1000 5,10,15,20,.....,1000 5,10,15,20,.....,1000
    在这里插入图片描述
  2. 此时如果我们将这200个5的倍数,全部提出一个5,就会获得200个5. 并且因式分解后剩下的值看起来如下: 1 ∗ 2 ∗ 3 ∗ 4 ∗ 5 ∗ . . . . ∗ 200 1*2*3*4*5*....*200 12345....200,你会发现它们这些数正好组成了200的阶乘所有的数,
    在这里插入图片描述
  1. 此时,我们只需要从1到200这些数中,找当中5的倍数的个数。也就是 5 , 10 , 15 , 20 , . . . , 200 5,10,15,20,...,200 5,10,15,20,...,200
  1. 而200这个阶乘中,5的倍数共出现40次,我们将40次进行统计,然后继续对这40个5的倍数提出一个5的因子。你会发现它们又变成了40的阶乘。
    在这里插入图片描述
  1. 此时继续求40这个阶乘中,5的倍数出现的次数。结果如下:共8个5的倍数,我们将8个5提出后,剩下的数字组成了8的阶乘
    在这里插入图片描述
  2. 继续对8求:共1个5的倍数5,提出1个5后,剩下数字只有1了,也就不用继续遍历了
    在这里插入图片描述
  3. 最终,就可以将所有我们提出的5统计起来,200+40+8+1 = 249个。
代码

在这里插入图片描述

class Solution {public int trailingZeroes(int n) {int count = 0;//统计个数while (n != 0){//只要n的阶乘中还可以有5就继续n /= 5;//获取n这个阶乘中所有5的倍数的个数count += n;//统计个数}return count;}
}
http://www.shuangfujiaoyu.com/news/32425.html

相关文章:

  • 弄美团网站的一般一个做赚多少钱搜索引擎广告形式有
  • 网站设计的原始资料私域流量运营管理
  • 公司网站优化要怎么做大数据精准营销系统
  • Java除了做网站开发哈能做啥怎么开发网站
  • 网站建设预算表格国内最好的seo培训
  • 潍坊市建设一体化平台网站怎么做seo
  • 遵义网站推广网络营销解释
  • 小鱼儿网站做啥用的怎样做电商 入手
  • 福田公司电话号码多少上海关键词优化排名哪家好
  • 男女做爰全过程的视频网站win7优化大师下载
  • 重庆多功能网站建设seo建站公司
  • wordpress生成静态页站长工具seo综合查询全面解析
  • 做电子相册的网站百度关键词在线优化
  • 网络创作网站百度推销广告一年多少钱
  • 个人网站模板flash软文推广名词解释
  • 深圳市建设网站公司英文seo外链
  • 做网站用百度百科的资料会侵权吗网络推广运营优化
  • 网站首页url是什么搜索引擎有哪些分类
  • 网站vip功能怎么实现网站设计公司怎么样
  • 无锡cms建站搜索引擎营销的主要模式
  • 武汉做网站哪家专业百度推广在线客服
  • 邢台网站制作哪家强网站seo搜索引擎的原理是什么
  • 品牌网站建设报价单seo排名工具给您好的建议
  • 做网站容易学吗线上线下推广方案
  • 长沙 网站开发无代码建站
  • 易优cms和织梦cms的区别搜索网站排名优化
  • wordpress积分与奖励页面关键词优化
  • 能带描文本外链的网站seo学习论坛
  • 香港主机做擦边球网站西安seo服务公司
  • 无锡网站建设无锡网络推广深圳百度关键