এই সমস্যাতে, আমাদের n আকারের একটি stu[] অ্যারে দেওয়া আছে যা ক্লাসের ছাত্রদের নম্বর নির্দেশ করে। প্রতিটি ছাত্রের জন্য সর্বোচ্চ নম্বর ১০০ এবং পরীক্ষা उत्तীর্ণ করতে ৫০ নম্বর লাগে। আমাদের কাজ হল সবাইকে বোনাস দিয়ে ১০০ নম্বর অতিক্রম না করে সর্বোচ্চ ছাত্র उत्तীর্ণ করানো প্রোগ্রাম তৈরি করা।
আমাদের ছাত্রদের বোনাস নম্বর দিয়ে উত্তীর্ণ করাতে হবে কিন্তু বোনাস নম্বর সব ছাত্রকে দিতে হবে। আমাদের কাজ হল বোনাস নম্বর দিয়ে সর্বোচ্চ সংখ্যক ছাত্রকে উত্তীর্ণ করানো কিন্তু কোনো ছাত্রের নম্বর ১০০-এর বেশি হবেনা। এবং তারপর সর্বোচ্চ উত্তীর্ণ ছাত্রের সংখ্যা ফেরত দিতে হবে।
stu[] = {45, 32, 78, 10, 53, 67}
5
উত্তীর্ণ সব ছাত্র: 45 + 22 = 67 32 + 22 = 54 78 + 22 = 100 53 + 22 = 75 67 + 22 = 89
সমস্যা সমাধানের জন্য, আমাদের ছাত্রদের নম্বর দিতে হবে কিন্তু একটি জিনিস বিবেচনা করতে হবে যে কোনো ছাত্রের নম্বর ১০০-এর বেশি হবেনা। তাই সর্বোচ্চ বোনাস যা দিতে হয়:
সর্বোচ্চ নম্বর পাওয়া ছাত্র (M) + বোনাস = ১০০ বোনাস = ১০০ - M
তারপর এই বোনাস সব ছাত্রের বর্তমান নম্বরে যোগ করব। যদি ৫০ বা তার বেশি হয়, তবে ছাত্র उत्तীর্ণ। ফলাফল হবে এমন সব ছাত্রের গণনা।
আরম্ভিকরণ:
passCount = 0;
ধাপ ১: সর্বোচ্চ নম্বর পাওয়া ছাত্র খুঁজুন, maxMarks।
ধাপ ২: সব ছাত্রকে দেওয়া যেতে পারে এমন বোনাস হিসাব করুন, bonus = ১০০ - maxMarks।
ধাপ ৩: i → 0 থেকে n-1 পর্যন্ত লুপ।
ধাপ ৩.১: যদি (stu[i] + bonus >= 50) হয়, passCount++।
ধাপ ৪: passCount ফেরত দিন।
#includeusing namespace std; int calcPassCount(int stu[], int n) { int maxMarks = stu[0]; for (int i = 1; i < n; i++) { if (stu[i] > maxMarks) maxMarks = stu[i]; } int bonusMarks = 100 - maxMarks; int passCount = 0; for (int i = 0; i < n; i++) { if (stu[i] + bonusMarks >= 50) passCount++; } return passCount; } int main() { int stu[] = {45, 32, 78, 10, 53, 67}; int n = sizeof(stu) / sizeof(stu[0]); cout << "The Maximum students to pass after giving bonus to everybody is " << calcPassCount(stu, n); return 0; }
The Maximum students to pass after giving bonus to everybody is 5