例题7.2FatMouse'Trade
#include <iostream>
#include <algorithm>
#include <cstdio>
using namespace std;
struct goods
{
int weight;
int totalprice;
double price;
};
bool cmp(goods a,goods b)
{
return a.price<b.price;
}
int main()
{
int money;
int type;
while(cin>>money>>type)
{
if(money==-1&&type==-1)
{
break;
}
else{
goods gg[type];
for(int i=0;i<type;i++)
{
cin>>gg[i].weight>>gg[i].totalprice;
gg[i].price=gg[i].totalprice*1.0/gg[i].weight;//必须加*1.0,否则就是去尾整除无小数
// cout<<gg[i].weight<<" "<<gg[i].totalprice<<" "<<gg[i].price<<endl;//
}
sort(gg,gg+type,cmp);
double answer=0;
for(int i=0;i<type;i++)
{
// cout<<"剩下的钱"<<money<<"已买的重量"<<answer<<endl;
if(money>gg[i].totalprice)
{
money-=gg[i].totalprice;
answer+=gg[i].weight;
}
else{
answer+=money*1.0/gg[i].price;
money=0;
}
}
printf("%.3f\n",answer);//输出不用取地址
}
}
}
#include <algorithm>
#include <cstdio>
using namespace std;
struct goods
{
int weight;
int totalprice;
double price;
};
bool cmp(goods a,goods b)
{
return a.price<b.price;
}
int main()
{
int money;
int type;
while(cin>>money>>type)
{
if(money==-1&&type==-1)
{
break;
}
else{
goods gg[type];
for(int i=0;i<type;i++)
{
cin>>gg[i].weight>>gg[i].totalprice;
gg[i].price=gg[i].totalprice*1.0/gg[i].weight;//必须加*1.0,否则就是去尾整除无小数
// cout<<gg[i].weight<<" "<<gg[i].totalprice<<" "<<gg[i].price<<endl;//
}
sort(gg,gg+type,cmp);
double answer=0;
for(int i=0;i<type;i++)
{
// cout<<"剩下的钱"<<money<<"已买的重量"<<answer<<endl;
if(money>gg[i].totalprice)
{
money-=gg[i].totalprice;
answer+=gg[i].weight;
}
else{
answer+=money*1.0/gg[i].price;
money=0;
}
}
printf("%.3f\n",answer);//输出不用取地址
}
}
}
全部评论
相关推荐
点赞 评论 收藏
分享
11-23 20:47
中国地质大学(武汉) Java
程序员牛肉:继续沉淀吧同学,你这就是纯纯的流水线产品。
差不多的学历+两个烂大街项目。自身学历又不行,现在找啥实习呢。有点太浮躁了。多花点心思搞搞ai,开源和八股。这比你这段时间捣鼓一段小厂实习要好得多; 点赞 评论 收藏
分享
点赞 评论 收藏
分享
