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

โปรแกรมหาตำแหน่งลูกบอลหลังจากการกลับลำดับ n ครั้งใน Python

มีลูกบอล n ลูก เรียง 1,2,...,n ทำการกลับลำดับซ้ำ n ครั้ง: ครั้งแรกกลับทั้งหมด, ครั้งที่สองกลับตั้งแต่ตำแหน่ง 1 ถึง n, ครั้งที่สามกลับตั้งแต่ตำแหน่ง 2 ถึง n, ... หาตำแหน่งของลูกบอลที่เริ่มต้นอยู่ที่ index หลังจากการกลับลำดับทั้งหมด

ตัวอย่าง: balls=5, index=2 → ผลลัพธ์ 4

ขั้นตอนการแก้ปัญหา

สังเกตรูปแบบ: หาก index < n//2 ตำแหน่งสุดท้าย = 2*index + 1 มิฉะนั้น = 2*(n - index - 1)

ตัวอย่างโค้ด Python

def solve(balls, index):
    if index < balls // 2:
        return 2 * index + 1
    else:
        return 2 * (balls - index - 1)

# ทดสอบ
print(solve(5, 2))  # ผลลัพธ์: 4

อินพุตตัวอย่าง

5, 2

เอาต์พุตตัวอย่าง

4