您的位置:首页 > 其它

一元钱一瓶水,两个空瓶可以换一瓶,三个盖儿可以换一瓶,20元最多能喝多少?

2017-12-08 23:08 381 查看
#include<iostream>
using namespace std;
int countwater()
{
int sumprice=20;
int sumpz=0;
int sumpg=0;
int sum=0;
while((sumprice)||(sumpz>=2)||(sumpg>=3))
{
while(sumprice)
{
sumprice--;
sum++;
sumpz++;
sumpg++;
}
while((sumpz>=2))
{
int a=sumpz/2;
sumpz%=2;

sumprice+=a;
}
while((sumpg>=3))
{
int b=sumpg/3;
sumpg%=3;

sumprice+=b;
}
}

cout<<"剩下的瓶子数:"<<sumpz<<endl;
cout<<"剩下的瓶盖数:"<<sumpg<<endl;
return sum;
}
int main()
{
cout<<countwater();
return 0;
}


贪心算法不一定最优:但是这题就是最优的算法,你可以思考一下(任何一种【除了1元】,剩下组合不可能出现1和1,都是1和2)

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐