输入格式:
第1行输入T组测试数据,每组测试数据输入载重量 c 及古董个数 n,下1行输入每个古董的重量wi,用空格分开.
输出格式:
每组能装入的古董最大数量
#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
#include<cstdio>
#include <algorithm>
using namespace std;
int HanShu(int c, int n, int *wi);//函数声明
//c最大装载量,n古董个数,wi每个古董重量
int HanShu(int c, int n, int *wi)//传入wi是指针,也可以传入一个数组:int wi[]
{
int count = 0; //计算有几件古董
int currentWeight = 0; //计算当前重量
for (int i = 0; i < n; i++)
{
//大于载重量直接停止
if (currentWeight + *(wi+i) > c)
break;
//没大于载重量就往后加
currentWeight += *(wi + i);
count++;
}
return count;
}
int main()
{
int N;
cin >> N;
for (int i = 0; i < N; i++)
{
int c; //载重量
int n; //古董个数
cout << "输入最大载重量:" <<endl;
cin >> c;
cout << "输入古董个数:" << endl;
cin >> n;
//int wi[n]; //每个古董的重量
int* wi = new int[n];
for (int j = 0; j < n; j++)
cin >> wi[j];
//贪心算法,优先选最轻的
sort(wi, wi + n);//sort 首元素指针位置、最后一个元素的下一个指针位置 默认从小到大排序
cout <<"最多装载"<< HanShu(c, n, wi)<<"件物品" << endl;
}
return 0;
}