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

โปรแกรม Python พิมพ์ฐานสิบหกฐานสิบหกและฐานสองของตัวเลข n ตัวแรก


สมมติว่าเรามีค่า n เราต้องพิมพ์ Decimal, Octal, Hexadecimal และ Binary ที่เทียบเท่ากันของตัวเลข 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 ทำ
    • f :=สตริงว่าง
    • สำหรับแต่ละอักขระ c ใน "doXb" ให้ทำ
      • ถ้า 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