学校买回a本笔记本和b支铅笔作为儿童节礼物分发给同学们,为了让每个同学既能得到笔记本,也能得到铅笔,校长决定把笔记本和铅笔搭配在一起组成礼物,每份礼物要求完全一样,笔记本和铅笔都不能有剩余,每份礼物可以分配到几支铅笔,几个橡皮?C++代码
时间: 2024-01-18 17:03:03 浏览: 181
以下是使用 C++ 编写的代码实现:
```c++
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
int a, b;
cin >> a >> b;
int cnt = min(a, b); // 礼物的份数
a -= cnt; // 剩余的笔记本数量
b -= cnt; // 剩余的铅笔数量
// 如果还有剩余的笔记本或铅笔,可以再次搭配
if (a > 0 || b > 0) {
cnt += min(a/2, b/2); // 搭配成对的笔记本和铅笔
a -= cnt*2; // 剩余的笔记本数量
b -= cnt*2; // 剩余的铅笔数量
}
int cnt2 = min(a, b); // 礼物的份数
a -= cnt2; // 剩余的笔记本数量
b -= cnt2; // 剩余的铅笔数量
cout << cnt << " " << cnt2 << endl;
return 0;
}
```
其中,首先读入笔记本和铅笔的数量,然后按照上述贪心算法进行搭配,搭配出来的礼物都包含了一支铅笔,所以剩余的铅笔就可以和橡皮搭配了。我们再次按照上述贪心算法,搭配出剩余的橡皮和铅笔,最后输出每份礼物包含的铅笔数量和橡皮数量。
相关问题
学校买回a本笔记本和b支铅笔作为儿童节礼物分发给同学们,为了让每个同学既能得到笔记本,也能得到铅笔,校长决定把笔记本和铅笔搭配在一起组成礼物,每份礼物要求完全一样,笔记本和铅笔都不能有剩余,该如何搭配使礼物的份数最多。C++代码
以下是使用 C++ 编写的代码实现:
```c++
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
int a, b;
cin >> a >> b;
int cnt = min(a, b); // 礼物的份数
a -= cnt; // 剩余的笔记本数量
b -= cnt; // 剩余的铅笔数量
// 如果还有剩余的笔记本或铅笔,可以再次搭配
if (a > 0 || b > 0) {
cnt += min(a/2, b/2); // 搭配成对的笔记本和铅笔
}
cout << cnt << endl;
return 0;
}
```
其中,首先读入笔记本和铅笔的数量,然后按照上述贪心算法进行搭配,最后输出礼物的份数。
阅读全文