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

โปรแกรมหาจำนวนตำแหน่งที่เป็นไปได้ในบรรทัด n-person โดยมีไม่กี่คนที่อยู่ข้างหน้าและข้างหลังใน Python


สมมติว่าเรามีตัวเลขสามตัว n, a และ b พิจารณาว่าเราอยู่ในแถวของคน n คน และเราไม่รู้เกี่ยวกับตำแหน่งของเราในบรรทัด แต่เรารู้ว่ามีคนอยู่ข้างหน้าอย่างน้อยจำนวนหนึ่ง และอย่างน้อยก็มีคนจำนวน b ข้างหลังเรา เราต้องหาจำนวนตำแหน่งที่เป็นไปได้สำหรับเรา

ดังนั้น ถ้าอินพุตเป็นเหมือน n =10 a =3 b =4 เอาต์พุตจะเป็น 5 เนื่องจากมี 10 คนในแถว และอย่างน้อย 3 คนอยู่ข้างหน้า และสูงสุด 4 คนอยู่ด้านหลัง ดังนั้นเราจึงอยู่ที่ใดก็ได้ [0, 1, 2, 3, 4] เมื่อเราอยู่ที่ตำแหน่ง 0 แล้วมีคน 9 คนอยู่ข้างหน้า 0 อยู่ข้างหลังเป็นต้น

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

  • ถ้า a + b

    • กลับ b + 1

  • ถ้า a + b>=n แล้ว

    • กลับ n - a

ตัวอย่าง

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

def solve(n, a, b):
   if a + b < n:
      return b + 1
   if a + b >= n:
      return n - a

n = 10
a = 3
b = 4
print(solve(n, a, b))

อินพุต

10, 3, 4

ผลลัพธ์

5