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
- 如果 f 不為空,那麼
- 將 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
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C #
MongoDB
MySQL
Javascript
PHP