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

โปรแกรมค้นหาตัวเลขที่เพิ่มขึ้นต่อเนื่องกันทั้งหมดในช่วงเริ่มต้นใน Python


สมมติว่าเรามีตัวเลขเริ่มต้นและสิ้นสุดสองหมายเลข เราต้องหารายการจำนวนเต็มที่เรียงตามลำดับ เพื่อให้ทุกหมายเลข e ในช่วง [เริ่มต้น, สิ้นสุด] ทั้งที่รวมและตัวเลขของ e เพิ่มขึ้นต่อเนื่องกัน ตัวอย่างการเพิ่มจำนวนอย่างต่อเนื่องคือ 5678 แต่ 169 ไม่ใช่

ดังนั้น หากอินพุตเป็นเหมือน start =10 end =150 เอาต์พุตจะเป็น [12, 23, 34, 45, 56, 67, 78, 89, 123]

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -

  • s :=ทั้งหมด 9 หลักเป็นสตริง "123456789"
  • a :=รายการใหม่
  • สำหรับ i ในช่วง 0 ถึง 8 ให้ทำ
    • สำหรับ j ในช่วง i + 1 ถึง 9 ทำ
      • x :=(สตริงย่อยของ s จากดัชนี i ถึง j-1) เป็นตัวเลข
      • ถ้าเริ่ม <=x <=สิ้นสุด แล้ว
        • แทรก x ลงใน a
  • จัดเรียงรายการ a และส่งคืน

ตัวอย่าง

ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -

def solve(start, end):
   s = "123456789"
   a = []
   for i in range(9):
      for j in range(i + 1, 10):
         x = int(s[i:j])
         if start <= x <= end:
            a += (x,)
   return sorted(a)

start = 10
end = 150
print(solve(start, end))

อินพุต

10, 150

ผลลัพธ์

[12, 23, 34, 45, 56, 67, 78, 89, 123]