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

โปรแกรม Python เพื่อค้นหารายการแฝดที่ i+j+k ไม่เหมือนกับ n


สมมติว่าเรามีตัวเลขสามตัว i, j และ k และอีกจำนวนหนึ่งคือ n เราจะต้องหารายชื่อแฝดสามทั้งหมด (i, j, k) ซึ่ง i+j+k ไม่เหมือนกับ n เราจะต้องแก้ปัญหานี้โดยใช้กลยุทธ์การทำความเข้าใจรายการ

ดังนั้น หากอินพุตเท่ากับ i =1, j =1, z =2 และ n =3 เอาต์พุตจะเป็น [[0, 0, 0], [0, 0, 1], [0, 0, 2], [0, 1, 0], [0, 1, 1], [1, 0, 0], [1, 0, 1], [1, 1, 0], [1, 1, 2] ]

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

  • arr =อาร์เรย์ของแฝดสาม [x, y, z] สำหรับ x ทั้งหมดในช่วงตั้งแต่ 0 ถึง i สำหรับ y ทั้งหมดในช่วงตั้งแต่ 0 ถึง j และสำหรับ z ทั้งหมดในช่วงตั้งแต่ 0 ถึง k เมื่อ x+y+z เป็น ไม่เหมือนกับ n

ตัวอย่าง

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

def solve(i, j, k, n):
    arr = [[x, y, z] for x in range(i+1) for y in range(j+1) for z in range(k+1) if x+y+z != n]
    return arr

i = 1
j = 1
k = 2
n = 3
print(solve(i, j, k, n))

อินพุต

1, 1, 2, 3

ผลลัพธ์

[[0, 0, 0], [0, 0, 1], [0, 0, 2], [0, 1, 0], [0, 1, 1], [1, 0, 0], [1, 0, 1], [1, 1, 0], [1, 1, 2]]