这是在看geeksforgeeks时看到的一道题,挺不错的,题目是

Given a number system with only 3 and 4. Find the nth number in the number system.

First few numbers in the number system are: 3, 4, 33, 34, 43, 44, 333, 334, 343, 344,

433, 434, 443, 444, 3333, 3334, 3343, 3344, 3433, 3434, 3443, 3444, …

题目链接

简单的说,就是:

在一个由3、4组成的数字序列中找出第n个数,这个序列是这样的:

3、4、33、34、43、44、333、334、343、344、433、434、......

比如要找出第5个数,则输出43。

这是Zoho面试的一道题,题目不算很难。

仔细看这个序列,可以看到每个数字由3或4组成,我们可以把这个序列分组,以数字的位数来分:

第一组就是只有一位的数字:3,4

第二组就是只有二位的数字:33,34,43,44

第三组就是只有三位的数字:333, 334, 343, 344, 433,
434, 443, 444

.......

仔细观察一下每一组,可以看到,每一组都是有规律的,废话,肯定有规律。

把每一组的3用0替代,4用1替代,则

第一组就是:0,1

第二组就是:00,01,10,11

第三组就是:000,001,010,011,100,101,110,111

所以,只要知道要求的数字是第几组第几个就行了,把要求的n转化为

n = 2^i + a

求出i和a,i是位数,也就是第i个分组,a是分组中的第a个(a可以为0)

然后把a转为二进制,对于这个二进制,0就用3替代,1就用4替代,就求出问题的解了。

geeksforgeeks里还有其他解法。

版权声明:本文为博主原创文章,未经博主允许不得转载。

Find n‘th number in a number system with only 3 and 4的更多相关文章

  1. [Locked] Strobogrammatic Number & Strobogrammatic Number II & Strobogrammatic Number III

    Strobogrammatic Number A strobogrammatic number is a number that looks the same when rotated 180 deg ...

  2. odd number、 even number

    odd number 奇数 even number 偶数

  3. JavaScript Number() Vs new Number()

    最近在优化一个页面时候.IDEA 提示我错误的使用了包装类.当时感觉很诧异. 随后.我上Stack Overflow上面查了一下,终于发现了问题所在. new Number('123') 与 Numb ...

  4. es6 Number.isFinite()、Number.isNaN()、Number.isInteger()、Math.trunc()、Math.sign()、Math.cbrt()、Math.fround()、Math.hypot()、Math 对数方法

    ES6在Number对象上,新提供了Number.isFinite()和Number.isNaN()两个方法,用来检查Infinite和NaN这两个特殊值. Number.isFinite()用来检查 ...

  5. JS由Number与new Number的区别引发的思考

    在回答园子问题的时候发现了不少新东西,写下来分享一下 == 下面的图就是此篇的概览,另外文章的解释不包括ES6新增的Symbol,话说这货有包装类型,但是不能new... 基于JS是面向对象的,所以我 ...

  6. how to convert a number to a number array in javascript without convert number to a string

    how to convert a number to a number array in javascript without convert number to a string 如何在不将数字转换 ...

  7. python 利用位移法将ip转为number以及将number转为ip

    简介: 使用位移法将ip转为number型以及将number型转为ip,使用语言为python2.7 #!/usr/bin/env python # coding:utf-8 def ip2num(i ...

  8. Number()和new Number()的区别以及一种简单实现

    看MDN Beginners文档的时候注意到了这种用法 var n1 = Number(123); , 冒出的第一个疑问就是和 var n2 = new Number(123); 有什么区别呢? 首先 ...

  9. leetcode 136 Single Number, 260 Single Number III

    leetcode 136. Single Number Given an array of integers, every element appears twice except for one. ...

随机推荐

  1. 细数Android开源项目中那些频繁使用的并发库中的类

    这篇blog旨在帮助大家 梳理一下前面分析的那些开源代码中喜欢使用的一些类,这对我们真正理解这些项目是有极大好处的,以后遇到类似问题 我们就可以自己模仿他们也写 出类似的代码. 1.ExecutorS ...

  2. 树莓派 不稳定 ssh经常断 解决

    确保供电没问题,供电至少要0.7A,如果USB口有接东西就要更多 几个提高树莓派网络稳定性的方法 TroubleShooting(推荐!好多问题的解决方案) 设置树莓派SSH连接因超时闲置断开 树莓派 ...

  3. 热门Web开发方式 REST实现原理浅析

    REST 首先只是一种架构样式,不是一种标准.这点和 Ajax 类似,两者都是利用现有的成熟技术.在 REST 的定义中,一个 Web 应用总是使用固定的 URI 向外部世界呈现(或者说暴露)一个资源 ...

  4. 最全的PHP开发Android应用程序

    第一部分是指在Android系统的手机上直接写PHP脚本代码并立即运行: 第二部分则继续讲解如何把写好的PHP脚本代码打包成akp安装文件. 首先,在手机上安装两个apk包. 一个是SL4A(Scri ...

  5. ACE的 日志

    http://wenku.baidu.com/link?url=dK6j9_0pICRjxWW7usBlkCxPTa8zFSPyUe_uWAkwMPFDU4ip_tEfxpOitxjkl3RuPy3D ...

  6. [Everyday Mathematic]20150216

    设 $A,B,C$ 是同阶方阵, 试证: $$\bex (A-B)C=BA^{-1}\ra C(A-B)=A^{-1}B. \eex$$

  7. <转>揭秘DNS后台文件:DNS系列之五

    揭秘DNS后台文件 在前面的博文中我们介绍了DNS的体系结构,常用记录,还介绍了辅助服务器的配置,今天我们来介绍一下DNS服务器背后的几个文件.其实DNS服务器的工作完全依靠这几个文件,了解了DNS的 ...

  8. (转载)OC学习篇之---协议的概念和用法

    在前一篇文章中我们介绍了OC中类的延展,这一篇文章我们在来看一下OC中协议的概念以及用法,协议也是OC中的一个重点,Foundation框架以及我们后面在写代码都会用到. OC中的协议就是相当于Jav ...

  9. Markdown使用记录

    1,打开Markdown文件夹(已经解压好了) 2,运行markdownPad2.exe. 3,然后工具-选项-程序语言 改为中文. 4,帮助-Markdown激活. 5,打开激活工具,KG_tt7z ...

  10. 向CDH5集群中添加新的主机节点

    向CDH5集群中添加新的主机节点 步骤一:首先得在新的主机环境中安装JDK,关闭防火墙.修改selinux.NTP时钟与主机同步.修改hosts.与主机配置ssh免密码登录.保证安装好了perl和py ...