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