C++代码:商场购物问题 - 贪心算法求解
下面是一个符合题目要求的C++代码:
#include <iostream>
#include <vector>
#include <algorithm>
int main() {
int N;
std::cin >> N;
std::vector<int> prices(N);
for (int i = 0; i < N; i++) {
std::cin >> prices[i];
}
int X;
std::cin >> X;
std::sort(prices.begin(), prices.end());
int count = 0;
for (int i = 0; i < N; i++) {
if (X >= prices[i]) {
X -= prices[i];
count++;
}
}
std::cout << count << std::endl;
return 0;
}
这个代码首先读取了N,然后创建了一个大小为N的vector来保存Rain想买的物品的价格。然后读取了X,表示Rain开始时的零花钱。接下来,使用sort函数对prices进行排序,这样可以让Rain买到的物品按照价格从低到高排列。然后,使用一个循环遍历prices,如果当前物品的价格小于等于X,就将X减去物品的价格,并将计数器count加1。最后,输出count的值,表示Rain买到的物品件数。
原文地址: https://www.cveoy.top/t/topic/px5k 著作权归作者所有。请勿转载和采集!