Computer >> Máy Tính >  >> Lập trình >> Python

Chương trình tìm tất cả các số tăng liên tục trong phạm vi đầu cuối bằng Python

Giả sử chúng ta có hai số bắt đầu và kết thúc, chúng ta phải tìm một danh sách được sắp xếp các số nguyên sao cho mọi số e trong phạm vi [bắt đầu, kết thúc] đều bao gồm và các chữ số của e đều tăng liền nhau. Một ví dụ về số liên tục tăng là 5678, nhưng 169 thì không.

Vì vậy, nếu đầu vào là start =10 end =150, thì đầu ra sẽ là [12, 23, 34, 45, 56, 67, 78, 89, 123]

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

  • s:=tất cả 9 chữ số dưới dạng chuỗi "123456789"
  • a:=một danh sách mới
  • đối với tôi trong phạm vi từ 0 đến 8, hãy thực hiện
    • đối với j trong phạm vi i + 1 đến 9, thực hiện
      • x:=(chuỗi con của s từ chỉ số i đến j-1) dưới dạng số
      • nếu bắt đầu <=x <=end, thì
        • chèn x vào một
  • sắp xếp danh sách a và trả về

Ví dụ

Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -

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))

Đầu vào

10, 150

Đầu ra

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