สมมติว่าเรามีค่า n ต้องพิมพ์ค่าทศนิยม (Decimal), โอคทัล (Octal), เฮกซาเดซิมอล (Hexadecimal), ไบนารี (Binary) ของตัวเลข 1 ถึง n ใน 4 คอลัมน์
ตัวอย่าง 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 := ความยาวของ binary ของ n ลบ 2
- for i ในช่วง 1 ถึง n:
- f := สตริงว่าง
- สำหรับแต่ละตัวอักษร c ใน "doXb" (decimal, octal, hex, binary):
- ถ้า f ไม่ว่าง: เพิ่มช่องว่าง
- f := f + format string ชิดขวาตามความยาว l และตัวระบุ c
- พิมพ์ f.format(i, i, i, i)
ตัวอย่างโค้ด
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
เอาต์พุต
(ตาราง 4 คอลัมน์ ตามตัวอย่างข้างต้น)