Giả sử, có n số quả bóng. Các quả bóng được sắp xếp theo thứ tự 1,2,3,4, ..., n. Bây giờ các quả bóng được đảo ngược theo thứ tự, hoặc được sắp xếp theo cách n, n-1, n-2, ......, 2, 1. Các quả bóng lại được đảo ngược theo thứ tự, lần này chúng được đảo ngược từ vị trí 1 thành n, hoặc bây giờ thứ tự trở thành n, 1, 2, ....., n-1. Quá trình đảo ngược này được lặp lại n lần và mỗi lần vị trí xuất phát được dịch chuyển sang phải 1 chỗ. Bây giờ chúng ta phải tìm ra vị trí của một quả bóng ban đầu ở vị trí 'chỉ số' sau khi đảo ngược.
Vì vậy, nếu đầu vào là các quả bóng =5, index =2, thì đầu ra sẽ là 4 Quả bóng ban đầu là:1, 2, 3, 4, 5
Sau đó,
5,4,3,2,1 5,1,2,3,4 5,1,4,3,2 5,1,4,2,3
Quả bóng ở vị trí số 2 hiện đang ở vị trí số 4.
Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -
- nếu chỉ mục
- trả về 2 * chỉ mục + 1
- trả về 2 * (bóng - chỉ số - 1)
Ví dụ
Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -
def solve(balls, index): if index < balls // 2: return 2 * index + 1 else: return 2 * (balls - index - 1) print(solve(5, 2))
Đầu vào
5, 2
Đầu ra
4