समस्या कथन
एक परीक्षा में N प्रश्न दिए गए हैं और कक्षा में K छात्र हैं। K छात्रों के बैच में से, N छात्रों ने एक-एक प्रश्न को ठीक से याद किया। एक मेल में अधिकतम X प्रश्न हो सकते हैं।
आवश्यक मेलों की न्यूनतम संख्या ज्ञात कीजिए ताकि पूरी कक्षा को सभी प्रश्नों के बारे में पता चल सके
अगर एन =3, के =3, एक्स =1 तो किसी को 6 मेल भेजने होंगे -
- छात्र 1 अपना प्रश्न छात्र 2 और छात्र 3 (2 मेल) को भेजता है,
- छात्र 2 और छात्र 3 तो क्या कुल मेल =2 * 3 =6
एल्गोरिदम
अंतिम उत्तर की गणना निम्न सूत्र का उपयोग करके की जा सकती है -
ceil(N/X) * (K-N) + (( ceil((N-1)/X)) * (N-1)) + (N-1)
उदाहरण
#include <iostream> #include <cmath> using namespace std; int minMailsToBeSent(int n, int k, int x){ int m = (n - 1) + ceil((n - 1) * 1.0 / x) * (n - 1) + ceil(n * 1.0 / x) * (k- n); return m; } int main(){ int questions = 3; int students = 3; int X = 1; cout << "No of mails to be sent: " << minMailsToBeSent(questions, students, X) << endl; return 0; }
आउटपुट
जब आप उपरोक्त प्रोग्राम को संकलित और निष्पादित करते हैं। यह निम्न आउटपुट उत्पन्न करता है -
No of mails to be sent: 6