欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

使用python編寫十二進制與十進制轉(zhuǎn)換程序

系統(tǒng) 1655 0

我在面試前,面試公司發(fā)來一道python題,我覺得還挺有意思的。題目如下。"""
“”"
我們知道 2 進制數(shù)字由 2 種字符(01)組成,10 進制數(shù)字由 10 種字符(0123456789)組成,16 進制由 16 種字符(0123456789ABCDEF)。不同進制的數(shù)字之間可以相互轉(zhuǎn)換。

我們定義一種 “十二地支進制” 數(shù)字,這種數(shù)字由中國古代地支的 12 種字符(子、丑、寅、卯、辰、巳、午、未、申、酉、戌、亥)組成。“十二地支進制” 數(shù)字和 10 進制數(shù)字的關(guān)系可以看下面的代碼。

            
              
                [
              
              
                [
              
              
                "子"
              
              
                ,
              
              
                0
              
              
                ]
              
              
                ,
              
              
                [
              
              
                "丑"
              
              
                ,
              
              
                1
              
              
                ]
              
              
                ,
              
              
                [
              
              
                "寅"
              
              
                ,
              
              
                2
              
              
                ]
              
              
                ,
              
              
                [
              
              
                "卯"
              
              
                ,
              
              
                3
              
              
                ]
              
              
                ,
              
              
                [
              
              
                "辰"
              
              
                ,
              
              
                4
              
              
                ]
              
              
                ,
              
              
                [
              
              
                "巳"
              
              
                ,
              
              
                5
              
              
                ]
              
              
                ,
              
              
                [
              
              
                "午"
              
              
                ,
              
              
                6
              
              
                ]
              
              
                ,
              
              
                [
              
              
                "未"
              
              
                ,
              
              
                7
              
              
                ]
              
              
                ,
              
              
                [
              
              
                "申"
              
              
                ,
              
              
                8
              
              
                ]
              
              
                ,
              
              
                [
              
              
                "酉"
              
              
                ,
              
              
                9
              
              
                ]
              
              
                ,
              
              
                [
              
              
                "戌"
              
              
                ,
              
              
                10
              
              
                ]
              
              
                ,
              
              
                [
              
              
                "亥"
              
              
                ,
              
              
                11
              
              
                ]
              
              
                ,
              
              
                [
              
              
                "丑子"
              
              
                ,
              
              
                12
              
              
                ]
              
              
                ,
              
              
                [
              
              
                "丑丑"
              
              
                ,
              
              
                13
              
              
                ]
              
              
                ,
              
              
                [
              
              
                "丑寅"
              
              
                ,
              
              
                14
              
              
                ]
              
              
                ,
              
              
                [
              
              
                "丑卯"
              
              
                ,
              
              
                15
              
              
                ]
              
              
                ,
              
              
                [
              
              
                "丑寅子卯"
              
              
                ,
              
              
                2019
              
              
                ]
              
              
                ,
              
              
                ]
              
            
          

請實現(xiàn) 10 進制數(shù)字和 “十二地支進制” 數(shù)字之間的轉(zhuǎn)換函數(shù)。不需要考慮負數(shù)。
“”"
這道題的本質(zhì)就是十進制轉(zhuǎn)十二進制。跟十進制轉(zhuǎn)十六進制或者八進制原理一樣。十進制轉(zhuǎn)二進制是“除二倒取余數(shù)法”如下圖:
使用python編寫十二進制與十進制轉(zhuǎn)換程序_第1張圖片

與之類似,十二進制是除以十六。

十六進制轉(zhuǎn)十進制的轉(zhuǎn)換方式是“加權(quán)求和法”,如下圖:
使用python編寫十二進制與十進制轉(zhuǎn)換程序_第2張圖片
圖中的十六進制數(shù)應(yīng)為:713。轉(zhuǎn)換后的十進制為125。

十二進制轉(zhuǎn)換十進制的方法類似。十二進制是12的N次方。
在已知上述的轉(zhuǎn)換方式后,該問題就解決了一大半。只需要轉(zhuǎn)換為對應(yīng)的“地支”數(shù)。

python代碼如下:

            
               a 
              
                =
              
              
                2019
              
              #給定十進制數(shù)如
    b 
              
                =
              
              
                [
              
              
                ]
              
              
    init_10 
              
                =
              
              
                [
              
              
                0
              
              
                ,
              
              
                1
              
              
                ,
              
              
                2
              
              
                ,
              
              
                3
              
              
                ,
              
              
                4
              
              
                ,
              
              
                5
              
              
                ,
              
              
                6
              
              
                ,
              
              
                7
              
              
                ,
              
              
                8
              
              
                ,
              
              
                9
              
              
                ,
              
              
                10
              
              
                ,
              
              
                11
              
              
                ]
              
              
    dizhi1 
              
                =
              
              
                [
              
              
                "子"
              
              
                ,
              
              
                "丑"
              
              
                ,
              
              
                "寅"
              
              
                ,
              
              
                "卯"
              
              
                ,
              
              
                "辰"
              
              
                ,
              
              
                "巳"
              
              
                ,
              
              
                "午"
              
              
                ,
              
              
                "未"
              
              
                ,
              
              
                "申"
              
              
                ,
              
              
                "酉"
              
              
                ,
              
              
                "戌"
              
              
                ,
              
              
                "亥"
              
              
                ]
              
              
    int_to_dizhi 
              
                =
              
              
                dict
              
              
                (
              
              
                zip
              
              
                (
              
              init_10
              
                ,
              
               dizhi1
              
                )
              
              
                )
              
              #地支對應(yīng)的十進制字典
#十進制轉(zhuǎn)換為地支

    
              
                if
              
               a 
              
                >=
              
              
                12
              
              
                :
              
              #判斷是否大于
              
                12
              
              ?小于
              
                12
              
              直接轉(zhuǎn)換為對應(yīng)地支。

        
              
                if
              
               a 
              
                // 12 >= 12:
              
              
#整除
              
                12
              
              是否大于
              
                12
              
              ?小于
              
                12
              
              只做一次除
              
                12
              
              ,大于
              
                12
              
              會多次除以
              
                12
              
              。
            
              
                while
              
              
                (
              
              a 
              
                >=
              
              
                12
              
              
                )
              
              
                :
              
              
                c 
              
                =
              
               a 
              
                %
              
              
                12
              
                # 獲得余數(shù)
                a 
              
                =
              
               a 
              
                // 12  # 循環(huán)除
              
              
                b
              
                .
              
              
                append
              
              
                (
              
              c
              
                )
              
              

            b
              
                .
              
              
                append
              
              
                (
              
              a
              
                )
              
              
                else
              
              
                :
              
              
            b
              
                .
              
              
                append
              
              
                (
              
              a 
              
                %
              
              
                12
              
              
                )
              
              #只做一次除
              
                12
              
              取余數(shù)
            b
              
                .
              
              
                append
              
              
                (
              
              a 
              
                // 12)
              
              
                else
              
              
                :
              
              
        b
              
                .
              
              
                append
              
              
                (
              
              a
              
                )
              
              

    ccc
              
                =
              
              
                [
              
              
                ]
              
              #輸出
    b
              
                .
              
              
                reverse
              
              
                (
              
              
                )
              
              #列表左右翻轉(zhuǎn)

    
              
                for
              
               i 
              
                in
              
               b
              
                :
              
              
        ccc
              
                .
              
              
                append
              
              
                (
              
              int_to_dizhi
              
                [
              
              i
              
                ]
              
              
                )
              
              #將十進制轉(zhuǎn)換為對應(yīng)的“地支”
    
              
                return
              
               ccc

            
          

地支進制轉(zhuǎn)十進制:

            
              init_10 
              
                =
              
              
                [
              
              
                0
              
              
                ,
              
              
                1
              
              
                ,
              
              
                2
              
              
                ,
              
              
                3
              
              
                ,
              
              
                4
              
              
                ,
              
              
                5
              
              
                ,
              
              
                6
              
              
                ,
              
              
                7
              
              
                ,
              
              
                8
              
              
                ,
              
              
                9
              
              
                ,
              
              
                10
              
              
                ,
              
              
                11
              
              
                ]
              
              
    dizhi1 
              
                =
              
              
                [
              
              
                "子"
              
              
                ,
              
              
                "丑"
              
              
                ,
              
              
                "寅"
              
              
                ,
              
              
                "卯"
              
              
                ,
              
              
                "辰"
              
              
                ,
              
              
                "巳"
              
              
                ,
              
              
                "午"
              
              
                ,
              
              
                "未"
              
              
                ,
              
              
                "申"
              
              
                ,
              
              
                "酉"
              
              
                ,
              
              
                "戌"
              
              
                ,
              
              
                "亥"
              
              
                ]
              
              
    int_to_dizhi 
              
                =
              
              
                dict
              
              
                (
              
              
                zip
              
              
                (
              
              dizhi1
              
                ,
              
               init_10
              
                )
              
              
                )
              
              

    d 
              
                =
              
              
                ""
              
              #給定的地支如dizhi
              
                :
              
               str
    d
              
                .
              
              
                split
              
              
                (
              
              
                )
              
              #字符串分割
    z 
              
                =
              
              
                [
              
              
                ]
              
              
    l 
              
                =
              
              
                len
              
              
                (
              
              d
              
                )
              
              
    #地支轉(zhuǎn)換成十進制
    
              
                for
              
               i 
              
                in
              
              
                list
              
              
                (
              
              d
              
                )
              
              
                :
              
              
        z
              
                .
              
              
                append
              
              
                (
              
              int_to_dizhi
              
                [
              
              i
              
                ]
              
              
                )
              
              

    ten 
              
                =
              
              
                0
              
              
                for
              
               i
              
                ,
              
               j 
              
                in
              
              
                enumerate
              
              
                (
              
              z
              
                ,
              
               start
              
                =
              
              
                0
              
              
                )
              
              
                :
              
              
        ten 
              
                =
              
               ten 
              
                +
              
               j 
              
                *
              
              
                12
              
              
                **
              
              
                (
              
              l 
              
                -
              
               i 
              
                -
              
              
                1
              
              
                )
              
              
                print
              
              
                (
              
              i
              
                ,
              
               j
              
                )
              
              
                print
              
              
                (
              
              ten
              
                )
              
              
                return
              
               ten

            
          

或許不是最簡單的,不過思路應(yīng)該是清晰的。


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦?。?!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 精品国产久 | 超级碰碰碰视频在线观看 | 亚洲专区在线 | 日韩久久一区 | 五月婷婷久久综合 | 亚洲精品久久久一区 | 国产精品视频一区二区三区不卡 | 亚洲欧美日韩在线一区二区三区 | 91好色视频| 亚洲欧美在线视频免费 | 午夜小视频网站 | 色婷婷激婷婷深爱五月小说 | 午夜国产精品视频 | 情欲色香味 | 国产资源在线看 | 国产精品久久久久久久午夜 | 毛片基地免费视频a | 天天草天天 | 麻豆久久久久 | 一级毛片真人免费观看 | 日韩三级伦理在线 | 欧美一级α片 | 国产精品夜夜春夜夜爽久久 | 国产精品高清在线 | 一级毛片大全 | 极品美女一区二区三区视频 | 日本高清色惰www在线视频 | 免费a级在线观看播放 | 妞干在线 | 国产美女精品 | 国产精品手机在线 | 久久精品一本到99热免费 | 欧美日韩国产一区二区三区播放 | 天天干天天草 | 久久偷拍人| 美女一级| 欧美激情亚洲激情 | 免费成人在线网站 | 久久综合五月开心婷婷深深爱 | 免费在线看a | 免费午夜电影 |