问题描述:

Hamming number is a positive integer of the form 2i3j5k, for some non-negative integers ij, and k.

Write a function that computes the nth smallest Hamming number.

Specifically:

  • The first smallest Hamming number is 1 = 203050
  • The second smallest Hamming number is 2 = 213050
  • The third smallest Hamming number is 3 = 203150
  • The fourth smallest Hamming number is 4 = 223050
  • The fifth smallest Hamming number is 5 = 203051

The 20 smallest Hamming numbers are given in example test fixture.

Your code should be able to compute all of the smallest 5,000 (Clojure: 2000) Hamming numbers without timing out.

我的思路:

本题自己是没有任何思路的,只是知道汉明数肯定是2或3或5的倍数,但是无从下手。后来看别人的答案,主要思路也是如此。

下一个汉明数为已存在汉明数的2x,3x,5x的倍数。

若i2是我们没有用过的汉明数的指数的话,就乘以2;

若i3是我们没有用过的汉明数的指数的话,就乘以3;

若i5是我们没有用过的汉明数的指数的话,就乘以5。

我的答案:无,o(╥﹏╥)o

优秀答案:

(1)

function hamming (n) {var seq = [1];var i2 = 0, i3 = 0, i5 = 0;for (var i = 1; i < n; i++) {var x = Math.min(2 * seq[i2], 3 * seq[i3], 5 * seq[i5]);seq.push(x);if (2 * seq[i2] <= x) i2++;  //<= 可换成 ==if (3 * seq[i3] <= x) i3++;if (5 * seq[i5] <= x) i5++;}return seq[n-1];
}

哈哈哈!

转载于:https://www.cnblogs.com/hiluna/p/8916419.html

codewars--js--Hamming Numbers相关推荐

  1. [Codewar练习-jsc++]N Linear(N线性)

    问题: 段位:4 说明: 假设一个数组 arr 和 另一个数组 arr2,里面的元素是这样的规律: 1.arr[ 0 ] = 1; 2.每一个 arr[ i ] 都存在  arr2[0] * arr[ ...

  2. [Codewar练习-javac++]Twice linear(双线性)

    问题: 段位:4 说明: 假设一个数组 arr,里面的元素是这样的规律: 1.arr[ 0 ] = 1; 2.每一个 arr[ i ] 都存在  2 * arr[ i ] + 1 和 3 * arr[ ...

  3. webpack之react开发前准备

    今天抽出空来,翻了翻webpack之react的书籍,看到刚出的es6语法,貌似是简单了不少,但是兼容性确实不容乐观,如果实在要用那也不是不可以的,首先就跟随我来看下这个插件吧: Babel:这个插件 ...

  4. python基础操作笔记

    python基础操作笔记 第二章 变量和简单的数据类型 #2.1输出数据hello world print('--------------------------------------------- ...

  5. 欧拉计划(project euler)最详细中文题解

    欧拉计划是一个在线解题网站,题目以各类数学问题为主,通常需要结合一定的数学与编程知识,写出适当的程序求解问题(详细介绍可以参见我的文章).相比于力扣等刷题网站,欧拉计划上的题目有着更丰富的知识背景,在 ...

  6. python算法完整教程专栏完整目录

    python算法完整教程专栏完整目录 专栏说明如下 专栏目录 专栏说明如下 内容:python算法完整教程 数量:692篇博文(2023年2月15日截止) 更新时间至:2023年2月15日(后续加上去 ...

  7. 算法(Python版)|156Kstars|神级项目-(1)The Algorithms - Python简介

    文章目录 算法(Python版) 项目地址 项目概况 说明 参与入门 社区频道 算法列表 Arithmetic Analysis 算术分析 Audio Filters 音频过滤器 Backtracki ...

  8. TypeScript-Int64实现

    TypeScript-Int64实现 查了一些实现资料,找到以下几个Int64解决方案,整理起来.最后一个需要翻墙,直接把代码贴上,可以参考一下. 一.Javascript 的 64bit Int 支 ...

  9. codewars练习记录20 js

    文章目录 [6 kyu] Simple Encryption #1 - Alternating Split [6 kyu] Kebabize [6 kyu] Decipher this! [6 kyu ...

最新文章

  1. sql 增加自增列 耗时长_SQLServer为已有数据的表添加一个自增列
  2. 小冰和她的兄弟姐妹们组团出道:唱歌跳舞写文章样样都会,而且都开放版权...
  3. Sublime插件开发 启动Anaconda并运行对应Python脚本
  4. Python 之 使用 PIL 库做图像处理
  5. CentOS6.5下搭建SVN服务器
  6. ES6中修复的5个JavaScript“不良”部分
  7. php网站mysql数据库导入工具_phpstudy通过phpMyAdmin导入mysql数据库方法
  8. [2019BUAA软工]第0次代码作业
  9. 019年中国航空三字代码对照表完全汇总
  10. 【JZOJ6287】扭动的树
  11. vim配置——MA6174
  12. MovieClip添加点击事件
  13. Java-如何防范CSRF攻击
  14. 微信小程序(一):霍兰德职业兴趣测试、心里测评、性格测评(含可用完整代码)
  15. SP 2022论文泛读
  16. RAID5系统架构和扩容
  17. 推荐系统 | (3) 可解释推荐系统---身怀绝技,一招击中用户心理
  18. 追逐日月,不苟于山川。
  19. 十款免费将PDF转Word的软件工具集
  20. 天脉导热冲刺创业板:拟募资4亿 创始人谢毅是初中学历

热门文章

  1. jquery 地理位置 与 IP地址
  2. Windows环境下MinGW/gcc安装和环境配置
  3. 点按钮ajax get方法修改0或1状态封装成函数
  4. K.O. -------- Eclipse中Maven的报错处理
  5. struts2获取服务器临时目录
  6. Optional变量初学者指南
  7. 虚幻4 远处的贴图模糊处理
  8. windows版本git的下载地址
  9. C#实现在Winform中嵌入Word和Excel
  10. [转] 视频直播前端方案