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

সি ভাষায় সর্বোচ্চ কতগুলো ক্যান্ডি কেনা যায়

আমাদের একটি ক্যান্ডি অ্যারে দেওয়া আছে candies[] যার লেঙ্গ্থ size ভেরিয়েবলে সংরক্ষিত। প্রতিটি candies[i] টাইপ-i ক্যান্ডির সংখ্যা নির্দেশ করে। লক্ষ্য হলো যেকোনো টাকার জন্য সর্বোচ্চ কতগুলো ক্যান্ডি কেনা যায়। শর্তাবলী নিচে দেওয়া হলো:

যদি আপনি টাইপ-i-এর X[i] সংখ্যক ক্যান্ডি কেনেন (0 <= X[i] <= candies[i]), তবে সমস্ত j (1 <= j <= i) এর জন্য নিচের শর্তগুলোর কমপক্ষে একটি সত্য হতে হবে:

  • X[j] < X[i] (টাইপ-j ক্যান্ডি টাইপ-i ক্যান্ডির চেয়ে কম কেনা হয়েছে)
  • X[j] = 0 (টাইপ-j ক্যান্ডি কেনা হয়নি)

উদাহরণ ১

ইনপুট: Arr[] = {1, 3, 5, 2, 6, 7}

আউটপুট: সর্বোচ্চ ক্যান্ডি কেনা যায় - ১৬

ব্যাখ্যা: কেনা ক্যান্ডি {0, 3, 5, 2, 6, 0}

উদাহরণ ২

ইনপুট: Arr[] = {5, 7, 7, 3, 4}

আউটপুট: সর্বোচ্চ ক্যান্ডি কেনা যায় - ১০

ব্যাখ্যা: কেনা ক্যান্ডি {0, 0, 7, 3, 0}

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

  • ইন্টিজার অ্যারে candies[] টাইপ-i ক্যান্ডির সংখ্যা স্টোর করে।
  • ভেরিয়েবল size অ্যারের লেঙ্গ্থ স্টোর করে।
  • maxCandies(int arr[], int n) ফাংশন কেনা যাওয়া ক্যান্ডির মোট সংখ্যা রিটার্ন করে।
  • প্রথমে ধরে নেওয়া হয় শেষ টাইপের ক্যান্ডি কেনা হয়েছে: bought = arr[n-1]।
  • দ্বিতীয় শেষ এলিমেন্ট থেকে শুরু করে লুপ: for(i=n-2; i>=0; i--)।
  • ভেরিয়েবল x বর্তমান টাইপের কেনা যাওয়া ক্যান্ডির সংখ্যা: x = min(arr[i], bought-1)।
  • x নন-জিরো হলে টোটালে যোগ করা হয়।
  • টোটাল প্রিভাস bought থেকে বড় হলে bought = x আপডেট করা হয়।
  • ফলাফল রিটার্ন করা হয়।

উদাহরণ কোড

#include <stdio.h>
int maxCandies(int arr[], int n) {
    int bought = arr[n - 1];
    int total = bought;
    // দ্বিতীয় শেষ এলিমেন্ট থেকে শুরু
    for (int i = n - 2; i >= 0; i--) {
        // বর্তমান টাইপের কেনা যাওয়া ক্যান্ডির পরিমাণ
        int x = arr[i] < bought - 1 ? arr[i] : bought - 1;
        if (x >= 0) {
            total += x;
            bought = x;
        }
    }
    return total;
}
int main() {
    int candies[] = {1, 2, 4, 3, 7};
    int size = 5;
    printf("কেনা যাওয়া মোট ক্যান্ডি: %d", maxCandies(candies, size));
    return 0;
}

আউটপুট

কেনা যাওয়া মোট ক্যান্ডি: 13
  1. সি ভাষায় সমদ্বিবাহু সমকোণী ত্রিভুজে ২×২ বর্গ কতটি ফিট হয়

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

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

  4. C++-এ কণকোণী সমদ্বিবাহু ত্রিভুজে ফিট হতে পারা ম্যাক্সিমাম বর্গের সংখ্যা