สมมติว่าเรากำลังสร้างสามเหลี่ยมจำนวนดังต่อไปนี้
1 1 1 1 1 2 3 2 1 1 3 6 7 6 3 1
โดยในแต่ละแถวองค์ประกอบจะถูกสร้างขึ้นโดยการเพิ่มตัวเลขสามตัวไว้ด้านบน ทีนี้ถ้าเรามีหมายเลขบรรทัด l เราต้องหาตำแหน่งของเลขคู่แรกของเส้นนั้น ค่าตำแหน่งเริ่มต้นจาก 1
ดังนั้น หากอินพุตเป็น l =5 ผลลัพธ์จะเป็น 2
1 1 1 1 1 2 3 2 1 1 3 6 7 6 3 1 1 4 10 16 19 16 10 4 1
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
- ถ้า l เหมือนกับ 1 หรือ l เหมือนกับ 2 แล้ว
- คืน -1
- มิฉะนั้นเมื่อ l mod 2 เหมือนกับ 0 แล้ว
- ถ้า l mod 4 เหมือนกับ 0 แล้ว
- คืน 3
- มิฉะนั้น
- คืน 4
- ถ้า l mod 4 เหมือนกับ 0 แล้ว
- มิฉะนั้น
- คืน 2
ตัวอย่าง
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -
def solve(l): if l == 1 or l == 2 : return -1 elif l % 2 == 0: if l % 4 == 0: return 3 else: return 4 else: return 2 l = 5 print(solve(l))
อินพุต
5
ผลลัพธ์
2