কম্পিউটার

সর্বোচ্চ সংখ্যক ক্যান্ডি সি-তে কেনা যায়


আমাদের 'আকারে' সংরক্ষিত দৈর্ঘ্যের ক্যান্ডির একটি অ্যারে দেওয়া হয়েছে। প্রতিটি উপাদান ক্যান্ডি[i] টাইপের ক্যান্ডির জন্য একটি সংখ্যা থাকে i. লক্ষ্য হল যে কোনও পরিমাণ অর্থের জন্য যতটা সম্ভব ক্যান্ডি কেনা। শর্তগুলো দেওয়া হল -

আপনি যদি X[i] টাইপ i (0<=X[i] <=candies[i] ) ক্রয় করেন, তাহলে সমস্ত j ( 1<=j<=i ) এর জন্য অন্তত নিম্নলিখিত শর্তগুলির মধ্যে অবশ্যই সত্য হতে হবে −

  • X(j)

  • X(j)=0, j ধরনের কোন ক্যান্ডি কেনা হয়নি

উদাহরণ দিয়ে বোঝা যাক।

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

আউটপুট − সর্বাধিক ক্যান্ডি যা কেনা যায় − 16

ব্যাখ্যা − ক্যান্ডি টাইপ i { 0,3,5,2,6,0 }

কেনা

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

আউটপুট − সর্বাধিক ক্যান্ডি যা কেনা যায় − 10

ব্যাখ্যা − ক্যান্ডি টাইপ i { 0,0,7,3,0 }

কেনা

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

  • পূর্ণসংখ্যা অ্যারে ক্যান্ডি[] i.

    ধরনের ক্যান্ডির সংখ্যা সংরক্ষণ করতে ব্যবহৃত হয়
  • পরিবর্তনশীল 'আকার' অ্যারে ক্যান্ডির দৈর্ঘ্য সঞ্চয় করে।

  • ফাংশন maxCandies(int arr[], int n) কেনা যায় এমন মোট ক্যান্ডির সংখ্যা ফেরত দিতে ব্যবহৃত হয়।

  • প্রথমে ধরুন আমরা শেষ ধরনের ক্যান্ডি কিনেছি। bought=arr[n-1]

  • দ্বিতীয় শেষ উপাদান থেকে শুরু করে, for(i=n-2;i>=0;i-)

  • ভেরিয়েবল x বর্তমান ধরনের ক্যান্ডির পরিমাণ সঞ্চয় করে যা কেনা যায়। x=arr[i] বা কেনা-1 যেটি কম।

  • যদি x অ-জিও হয় তবে এটিকে মোট যোগ করুন।

  • যদি মোটটি আগের কেনা মানের থেকে বেশি হয় তাহলে bought=x.

  • কেনা ফলাফল ফেরত দিন।

উদাহরণ

#include <stdio.h>
int maxCandies(int arr[], int n){
   int bought = arr[n - 1];
   int total = bought;
   // Starting from second last
   for (int i = n - 2; i >= 0; i--) {
      // Amount of candies of the current
      // type that can be bought
      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("Total Candies that can be bought: %d", maxCandies(candies, size));
   return 0;
}

আউটপুট

যদি আমরা উপরের কোডটি চালাই তবে এটি নিম্নলিখিত আউটপুট −

উৎপন্ন করবে
Total Candies that can be bought: 13

  1. সর্বাধিক সংখ্যা 2×2 বর্গক্ষেত্র যা C তে একটি সমদ্বিবাহু ত্রিভুজের ভিতরে ফিট করা যেতে পারে

  2. সর্বাধিক সংখ্যা যা C++ এ N সেগমেন্ট ব্যবহার করে সেভেন সেগমেন্ট ডিসপ্লেতে প্রদর্শিত হতে পারে

  3. সর্বাধিক বিশপ যা C++ এ N*N চেসবোর্ডে স্থাপন করা যেতে পারে

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