可以帮我写一个符合以下条件的C++代码么?输入描述输入共3行。 第一行一个整数N1=N=100表示商场中共有N件Rain想买的物品。 第二行有N个范围在1到100的整数分别表示Rain先后见到想买的物品的价格。 第三行是一个整数X1=X=1000表示Rain开始时共有的零花钱。输出描述 输出1行包含一个整数表示Rain买到的物品件数。用例输入 6 7 5 9 1 0 7 4 30用例输出
下面是一个符合题目要求的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/hO0E 著作权归作者所有。请勿转载和采集!