কম্পিউটার টিউটোরিয়াল

জেনারেটেড অ্যারেতে সর্বোচ্চ মান বের করা

একটি সংখ্যা n দেওয়া আছে। দৈর্ঘ্য n+1 এর একটি অ্যারে A জেনারেট করতে হবে:

  • A[0] = 0

  • A[1] = 1

  • A[2*i] = A[i] যদি 2 ≤ 2*i ≤ n

  • A[2*i+1] = A[i] + A[i+1] যদি 2 ≤ 2*i+1 ≤ n

অ্যারেতে সর্বোচ্চ মান বের করতে হবে।

ইনপুট: n = 5 → আউটপুট: 3।

  • A[0]=0, A[1]=1
  • A[2]=A[1]=1
  • A[3]=A[1]+A[2]=2
  • A[4]=A[2]=1
  • A[5]=A[2]+A[3]=3
  • সর্বোচ্চ = ৩

সমাধানের ধাপসমূহ

  • A := list(range(n+1))

  • প্রতিটি i ∈ A-এর জন্য:

    • যদি i == 0 বা 1: continue
    • যদি i জোড়: A[i] = A[i//2]
    • অন্যথায়: A[i] = A[i//2] + A[i//2 + 1]
  • max(A) রিটার্ন করুন

উদাহরণ (Python)

def solve(n):
    A = list(range(n + 1))
    for i in A:
        if i == 0 or i == 1:
            continue
        elif i % 2 == 0:
            A[i] = A[i // 2]
        else:
            A[i] = A[i // 2] + A[(i // 2) + 1]
    return max(A)

n = 5
print(solve(n))

ইনপুট

5

আউটপুট

3
  1. Python-এ সর্বোচ্চ বিল্ডিং হাইট বের করার প্রোগ্রাম

  2. পাইথন প্রোগ্রামে অ্যারের যোগফল বের করা

  3. পাইথনে অ্যারের যোগফল বের করা

  4. পাইথন প্রোগ্রাম: ২ডি অ্যারে-তে k-তম ছোট এলিমেন্ট বের করা