首页 > 代码库 > 华为机试(5)

华为机试(5)

中级题 
题目描述 
你有一个容量为100的箩筐,给你30个物品,每个物品的体积已知问:最多能装多少个物品进箩筐 
输入描述  :一行30个正整数,用空格隔开,表示每个物品的体积 
输出描述  :一个数字,为最多能装下的物品数 

输入样例(此处用3个物品作为样例,实际读入为30个)  :5 59 100 
输出样例  :2  

解题思路:利用性价比对所有物品进行排序,优先装性价比高的,在此题中,性价比就是物品的体积  

#include<algorithm>//sort函数#include<iostream>#include<vector>using namespace std;void main(){    vector<int> ves(3,0);    for(int i=0;i<3;i++)        cin>>ves[i];    sort(ves.begin(),ves.end());    int sum = 0,num=0;    for(int i=0;i<3;i++)    {        sum += ves[i];        if(sum>100)       {           break;       }       num++;    }    cout<<num<<endl;   }