Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

จำนวนอีเมลขั้นต่ำที่จำเป็นในการแจกจ่ายคำถามทั้งหมดโดยใช้ C ++


คำชี้แจงปัญหา

ให้ N คำถามในการทดสอบและนักเรียน K ในชั้นเรียน จากกลุ่มนักเรียน K นักเรียน N คนจำคำถามแต่ละข้อได้อย่างแม่นยำ อีเมลสามารถมีคำถามได้สูงสุด X คำถาม

ค้นหาจำนวนอีเมลขั้นต่ำที่ต้องการเพื่อให้ทั้งชั้นเรียนทราบเกี่ยวกับคำถามทั้งหมด

ถ้า N =3, K =3, X =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