zoukankan      html  css  js  c++  java
  • Find n‘th number in a number system with only 3 and 4

    这是在看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里还有其他解法。


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

  • 相关阅读:
    关于interface
    如何应对微软的强制黑屏(转)
    启动不了AOS
    AX中对Programmable section的动态控制
    AX中的InventDimId
    关于MODI.Document = new MODI.Document();
    Window xp卸载oracle 10g
    oracle 字符串列转行
    取出表同一类型的指定范围记录
    rss2.0数据格式
  • 原文地址:https://www.cnblogs.com/Rex7/p/4752540.html
Copyright © 2011-2022 走看看