Computer >> Máy Tính >  >> Lập trình >> Python

Chương trình tìm các phép toán tối thiểu để làm cho mảng bằng nhau bằng Python

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