欧美三区_成人在线免费观看视频_欧美极品少妇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條評論
主站蜘蛛池模板: 四虎永久免费地址ww 41.6 | 亚洲欧美视频一区 | 免费一级毛片在线播放欧美 | 老牛影视av一区二区在线观看 | www操操| 一区二区三区在线 | 亚洲午夜av | 日本一区二区久久久 | 亚洲激情小视频 | 大开眼界 无删减 | 中国一级毛片视频 | 亚洲一级视频在线观看 | 偷拍免费视频 | 午夜小网站 | 色老师| 老头巨大校花体内驰骋小说文 | 日韩在线观看一区二区不卡视频 | 狠狠色狠狠色综合日日92 | 91短视频网址 | 午夜黄网 | 欧美区日韩区 | 中文字幕日韩欧美一区二区三区 | 国产成人www | 亚洲第一网站 | 一区二区三区高清 | 国产午夜三级一区二区三桃花影视 | 国产伦理一区二区三区 | 激情视频免费在线观看 | 夜夜夜夜猛噜噜噜噜噜 | 天天操夜夜操 | 色偷偷成人网免费视频男人的天堂 | 很黄很色又爽很黄很色又爽 | 欧美日本免费一区二区三区 | 午夜在线视频一区二区三区 | 国产一级淫 | 亚洲日本片 | 亚洲视频黄色 | 日韩深夜福利视频 | 色婷婷狠狠 | 国产精品国产三级国产播12软件 | 成人免播放器午夜视频 |