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

C-তে দুটি লকার থেকে দু ধাপে সর্বোच्च টাকা উত্তোলন

দুটি লকার L1 এবং L2 আছে যেগুলোতে যথাক্রমে A এবং B সংখ্যক কয়েন রয়েছে। দু ধাপে কয়েন উত্তোলন করে সর্বোচ্চ টাকা বের করতে হবে। প্রতিবার কোনো লকার থেকে কয়েন নিলে সেটা এক কমে যায় (A-1 বা B-1)।

উদাহরণ

ইনপুট: L1 = 10, L2 = 11

আউটপুট: দু ধাপে সর্বোচ্চ টাকা - 21

ব্যাখ্যা: ধাপ ১: L2 থেকে ১১ কয়েন নিলে L2 = ১০। ধাপ ২: L1 বা L2 যেকোনো থেকে ১০ কয়েন। মোট = ১১ + ১০ = ২১।

ইনপুট: L1 = 5, L2 = 5

আউটপুট: ১০

ব্যাখ্যা: ধাপ ১: L1 থেকে ৫ (L1 = ৪)। ধাপ ২: L2 থেকে ৫। মোট = ৫ + ৫ = ১০।

প্রোগ্রামে ব্যবহৃত পদ্ধতি

  • দুটি লকার A এবং B ইনপুট হিসেবে নেওয়া হয়।
  • maxMoney(int A, int B) ফাংশনটি সর্বোচ্চ কয়েন রিটার্ন করে।
  • money = max(A, B) দিয়ে প্রথম উত্তোলন।
  • যদি A থেকে নেওয়া হয় তবে A--, না হলে B--।
  • আরেকবার money += max(A, B) দিয়ে দ্বিতীয় উত্তোলন।
  • money রিটার্ন করা হয়।

C প্রোগ্রাম উদাহরণ

#include <stdio.h>
#include <math.h>

int maxMoney(int A, int B) {
    int money = A > B ? A : B;
    if (money == A) A--; else B--;
    money += A > B ? A : B;
    return money;
}

int main() {
    int L1 = 8, L2 = 9;
    printf("দু ধাপে সর্বোচ্চ টাকা: %d", maxMoney(L1, L2));
    return 0;
}

আউটপুট

দু ধাপে সর্বোচ্চ টাকা: 17
  1. সি ভাষায় সমদ্বিবাহু সমকোণী ত্রিভুজে ২×২ বর্গ কতটি ফিট হয়

  2. C++-এ সেভেন সেগমেন্ট ডিসপ্লেতে N সেগমেন্ট দিয়ে প্রদর্শনযোগ্য সর্বোচ্চ সংখ্যা

  3. C++-এ N*N চেসবোর্ডে সর্বোচ্চ বিশপ বসানো

  4. C++-এ বাইনারি ট্রিতে দুটি নোড जोড়ে সর্বোচ্চ দৈর্ঘ্যের সাইকেল