用c++语言写一下这个题目
时间: 2023-08-16 10:07:34 浏览: 64
好的,以下是一个用C++实现的代码示例:
```c++
#include <iostream>
#include <vector>
using namespace std;
bool canGiveChange(vector<int>& bills) {
int n = bills.size();
int cnt25 = 0, cnt50 = 0;
for (int i = 0; i < n; i++) {
if (bills[i] == 25) {
cnt25++;
} else if (bills[i] == 50) {
if (cnt25 == 0) {
return false;
}
cnt25--;
cnt50++;
} else {
if (cnt25 > 0 && cnt50 > 0) {
cnt25--;
cnt50--;
} else if (cnt25 >= 3) {
cnt25 -= 3;
} else {
return false;
}
}
}
return true;
}
int main() {
vector<int> bills = {25, 50, 100, 25, 25, 50};
if (canGiveChange(bills)) {
cout << "饭堂阿姨能够给所有人找零" << endl;
} else {
cout << "饭堂阿姨无法给所有人找零" << endl;
}
return 0;
}
```
这个示例使用了一个`canGiveChange`函数来判断饭堂阿姨是否能够给所有人找零。它接受一个整数数组`bills`作为输入,表示每个人支付的钞票面值,返回一个布尔值,表示饭堂阿姨是否能够给所有人找零。在函数中,我们使用两个计数器`cnt25`和`cnt50`来记录饭堂阿姨手上的25元和50元钞票的数量,并按照上述贪心策略进行模拟即可。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)