Python 程式用於列印前 n 個數字的十進位制、八進位制、十六進位制和小數二進位制


假設我們有一個值 n。我們必須在四列中列印前 n 個數字(1 到 n)的十進位制、八進位制、十六進位制和小數二進位制等價值。眾所周知,我們可以使用字首字元 d、o、X 和 b 分別表示十進位制、八進位制、十六進位制和小數。

所以,如果輸入像 n = 10,那麼輸出將是

1    1    1    1
2    2    2   10
3    3    3   11
4    4    4  100
5    5    5  101
6    6    6  110
7    7    7  111
8   10    8 1000
9   11    9 1001
10  12    A 1010

為了解決這個問題,我們將遵循以下步驟 −

  • l :=(n 的二進位制等價物的長度)- 2
  • 對於 1 到 n 的範圍中的 i,執行
    • f := 空白字串
    • 對於“doXb”中的每個字元 c,執行
      • 如果 f 不為空,那麼
        • f := f 連線一個空格
      • f := f + 右對齊格式化字串,方法是將 l 轉換為字串,然後再連線 c
    • 將 i 四次傳遞給格式化字串 f,然後列印該行

示例

讓我們看看以下實現以獲得更好的理解

def solve(n):
   l = len(bin(n)) - 2
   for i in range(1, n + 1):
      f = ""
      for c in "doXb":
         if f:
            f += " "
         f += "{:>" + str(l) + c + "}"
      print(f.format(i, i, i, i))

n = 10
solve(n)

輸入

10

輸出

1    1    1    1
2    2    2   10
3    3    3   11
4    4    4  100
5    5    5  101
6    6    6  110
7    7    7  111
8   10    8 1000
9   11    9 1001
10  12    A 1010

更新於:11-Oct-2021

1K+ 瀏覽量

開啟您的 職業生涯

完成課程後獲得認證

開始
廣告
© . All rights reserved.