使用C ++分发所有问题所需的最少邮件数。
问题陈述
在测试中给N个问题,全班有K个学生。在这K名学生中,有N名学生每个记忆了一个问题。一封邮件最多可以包含X个问题。
找到所需的最少邮件数,以便整个班级了解所有问题
如果N=3,K=3,X=1,则一个必须发送6封邮件-
学生1将他的问题发送给学生2和学生3(两封邮件),
学生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
热门推荐
10 八一幼儿祝福语大全简短
11 公司乔迁食堂祝福语简短
12 婚礼结束聚餐祝福语简短
13 儿媳买车妈妈祝福语简短
14 毕业送礼老师祝福语简短
15 同事辞职正常祝福语简短
16 恭贺新婚文案祝福语简短
17 金店立秋祝福语简短英文
18 婆婆高寿祝福语大全简短