Giả sử chúng ta có một giá trị n, hãy xem xét một số mảng có n phần tử, trong đó arr [i] =(2 * i) +1 với mọi i. Bây giờ trong một phép toán, chúng ta có thể chọn hai chỉ số x và y trong đó 0 <=x, y
Vì vậy, nếu đầu vào là n =4, thì đầu ra sẽ là 4 như đối với n mảng là [1,3,5,7], bây giờ sau thao tác đầu tiên chúng ta có thể tạo mảng như [2,3,5,6 ], sau thao tác thứ hai, chúng ta có thể thực hiện [3,3,5,5], sau đó sau lần thứ ba [4,3,4,5] và cuối cùng là [4,4,4,4]. Vì vậy, bây giờ tất cả đều bình đẳng.
Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -
ans:=0
nếu n giống 1 thì
trả lại ans
q:=thương số của (n / 2) -1
j:=1
trong khi q> =0, thực hiện
ans:=ans + (n-j)
q:=q - 1
j:=j + 2
trả lại ans
Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -
Ví dụ
def solve(n):
ans=0
if n==1:
return ans
q=(n//2)-1
j=1
while q>=0:
ans=ans+(n-j)
q-=1
j+=2
return ans
n = 4
print(solve(n))
Đầu vào
4
Đầu ra
4