สมมติว่าเรามีตัวเลขสามตัว 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