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

C++-এ 75% উপস্থিতি বজায় রাখতে ন্যূনতম লেকচার সংখ্যা বের করার প্রোগ্রাম


এই সমস্যায়, আমাদের দুটি সংখ্যা M এবং N দেওয়া হয়েছে যা বর্তমান তারিখ পর্যন্ত মোট ক্লাসের সংখ্যা এবং ছাত্র দ্বারা অনুষ্ঠান করা ক্লাসের সংখ্যা নির্দেশ করে। আমাদের কাজ হল 75% উপস্থিতি বজায় রাখতে ন্যূনতম লেকচার সংখ্যা বের করার প্রোগ্রাম তৈরি করা C++-এ।

সমস্যা বিবরণ

এটি কলেজ ছাত্রদের জন্য সবচেয়ে বড় চিন্তার বিষयों में একটি 75% শতাংশ উপস্থিতি বজায় রাখা। এই প্রোগ্রাম ছাত্রনামা দ্বারা নিয়মিত অনুষ্ঠান করার জন্য ন্যূনতম লেকচার সংখ্যা গণনা করে যাতে 75% উপস্থিতি হয়।

একটি উদাহরণ নিয়ে সমস্যাটি বুঝি,

উদাহরণ 1

ইনপুট: M = 32, N = 20

আউটপুট: 16

ব্যাখ্যা

ন্যূনতম 75% উপস্থিতি অর্জন করতে ছাত্রনামাকে কমপক্ষে 16টি লেকচার অনুষ্ঠান করতে হবে। এটি মোট লেকচার 48 এবং অনুষ্ঠান করা লেকচার 36 করবে।

শতাংশ = 36*100/48 = 75%

উদাহরণ 1

ইনপুট: M = 14, N = 4

আউটপুট: 26

ব্যাখ্যা

ন্যূনতম 75% উপস্থিতি অর্জন করতে ছাত্রনামাকে কমপক্ষে 26টি লেকচার অনুষ্ঠান করতে হবে। এটি মোট লেকচার 40 এবং অনুষ্ঠান করা লেকচার 30 করবে।

শতাংশ = 30*100/40 = 75%

সমাধান পদ্ধতি

এখানে, আমাদের ছাত্রনামার অনুষ্ঠান করার জন্য লেকচার সংখ্যা বের করতে হবে। একটি সহজ উপায় হল উভয় পাশে একটি লেকচার যোগ করা এবং যখন বিভাজন 0.75 বা তার বেশি হয় তখন যোগ করা বন্ধ করে ইটেরেটরের মান ফেরত দেওয়া।

আমাদের সমাধানের কাজকর্মকে স্পষ্ট করার প্রোগ্রাম,

উদাহরণ

#include <iostream> using namespace std; int maintainAtt(int M, int N) {    int att = 0; while(1){       if(((N+att)*100)/(M+att) >= 75){          return att;       }       att++;    } } int main() {    int M = 23, N = 12;    cout<<"The total number of lectures to be attended is "<<maintainAtt(M, N);    return 0; }

আউটপুট−

The total number of lectures to be attended is 21

এই পদ্ধতিতে একটি লুপ ব্যবহার করা হয়েছে যা সমাধানের টাইম কমপ্লেক্সিটি O(n)-এর কoti। কিন্তু আমরা এটি O(1) টাইম কমপ্লেক্সিটিতে করতে পারি গণিতের সূত্র ব্যবহার করে।

75% উপস্থিতি বজায় রাখতে ন্যূনতম লেকচার অনুষ্ঠানের সূত্র হল

$$\square\square\square\square\left(\frac{(0.75)+\square-\square}{0.25}\right)$$

আমাদের সমাধানের কাজকর্মকে স্পষ্ট করার প্রোগ্রাম,

উদাহরণ

#include <iostream> #include <math.h> using namespace std; int maintainAtt(int M, int N) {    int att = ceil(((0.75*M) - N)/(0.25)); return att; } int main() {    int M = 30, N = 11;    cout<<"The total number of lectures to be attended is "<<maintainAtt(M, N);    return 0; }

আউটপুট

The total number of lectures to be attended is 46

  1. C++-এ প্রতিপক্ষকে ধরতে ন্যূনতম রাউন্ড সংখ্যা বের করা

  2. C++ ব্যবহার করে একটি সংখ্যার ফ্যাক্টরের ন্যূনতম যোগফল বের করা

  3. C++ প্রোগ্রাম: সংখ্যার প্যারিটি (Parity) দ্রুত বের করা

  4. C++-এ একটি সংখ্যার জোড় ফ্যাক্টরগুলোর যোগফল (Sum of Even Factors)