Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

โปรแกรมพิมพ์เลขฐาน 10, 8, 16, 2 ของตัวเลข 1 ถึง n ใน Python

สมมติว่าเรามีค่า 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 คอลัมน์ ตามตัวอย่างข้างต้น)