কম্পিউটার

C++ এ a, b এবং c দৈর্ঘ্যের সেগমেন্টের সর্বোচ্চ সংখ্যা


প্রদত্ত টাস্ক হল a, b এবং c দৈর্ঘ্যের সর্বাধিক সংখ্যক লাইন সেগমেন্ট খুঁজে বের করা যা প্রদত্ত ধনাত্মক পূর্ণসংখ্যা N থেকে গঠিত হতে পারে।

আসুন এখন বুঝতে পারি −

একটি উদাহরণ ব্যবহার করে আমাদের কী করতে হবে

ইনপুট − N=8, a=3, b=1, c=2

আউটপুট৷ − 8

ব্যাখ্যা − N কে b-এর 8টি সেগমেন্টে ভাগ করা যেতে পারে যা সর্বোচ্চ সংখ্যক সেগমেন্ট তৈরি করা যায়।

ইনপুট − N=13, a=2, b=7, c=3

আউটপুট − 6

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

  • ফাংশনে MaxSegment() int টাইপের একটি অ্যারে MaxSeg[N +1] ঘোষণা করে এবং মান -1 দিয়ে শুরু করে।

  • শূন্য-ম সূচকটি 0-এর সমান রাখুন কারণ এতে কোনো সেগমেন্ট থাকবে না।

  • i=0 থেকে i

  • উপরের if স্টেটমেন্টের ভিতরে আরেকটি স্টেটমেন্ট লিখুন if(i + a <=N) এবং putMaxSeg[i + a] =max(MaxSeg[i] + 1, MaxSeg[i + a]);

  • b এবং c উভয়ের জন্য উপরের ধাপটি পুনরাবৃত্তি করুন।

  • লুপের বাইরে, MaxSeg[N] ফেরত দিন।

উদাহরণ

#include <bits/stdc++.h>
using namespace std;
int MaxSegment(int N, int a,int b, int c){
   /* It will store the maximum number of segments each index can have*/
   int MaxSeg[N + 1];
   // initialization
   memset(MaxSeg, -1, sizeof(MaxSeg));
   // 0th index will have 0 segments
   MaxSeg[0] = 0;
   // traversing for every segments till n
   for (int i = 0; i < N; i++){
      if (MaxSeg[i] != -1){
         if(i + a <= N ){
            MaxSeg[i + a] = max(MaxSeg[i] + 1, MaxSeg[i + a]);
         }
         if(i + b <= N ){
            MaxSeg[i + b] = max(MaxSeg[i] + 1, MaxSeg[i + b]);
         }
         if(i + c <= N ){
            MaxSeg[i + c] = max(MaxSeg[i] + 1, MaxSeg[i + c]);
         }
      }
   }
   return MaxSeg[N];
}
int main(){
   int N = 13, a = 2, b = 7, c = 3;
   cout << MaxSegment(N, a, b, c);
   return 0;
}

আউটপুট

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

6

  1. সাবস্ট্রিংয়ের সংখ্যা 8 দ্বারা বিভাজ্য এবং C++ এ 3 দ্বারা নয়

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

  3. C++ এ N কাটে সর্বাধিক সংখ্যা

  4. একটি লিঙ্ক করা তালিকার সর্বাধিক এবং সর্বনিম্ন উপাদান যা C++ এ একটি প্রদত্ত সংখ্যা k দ্বারা বিভাজ্য