本文主要是介绍java2个啤酒瓶换一瓶啤酒,一道笔试题:每瓶啤酒2元,3个空酒瓶或者5个瓶盖可换1瓶啤酒。100元最多可喝多少瓶啤酒?...,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目:每瓶啤酒2元,3个空酒瓶或者5个瓶盖可换1瓶啤酒。100元最多可喝多少瓶啤酒?(不允许借啤酒)
思路:利用递归算法,一次性买完,然后递归算出瓶盖和空瓶能换的啤酒数
程序如下:#include
int GetNumber(int cap,int empty,int bottle)//cap瓶盖,empty空瓶,bottle啤酒瓶
{
if(empty < 3 && cap < 5)
{
return bottle;
}
int a = empty / 3;//空瓶可换的啤酒数
int b = empty % 3;//空瓶换完剩下的空瓶数
int c = cap / 5;//瓶盖可换的啤酒数
int d = cap % 5;//瓶盖换完剩下的瓶盖数
printf("cap = %d,empty = %d,bottle = %d\n",a+c+d,a+c+b,a+c+bottle);
return GetNumber(a+c+d,a+c+b,a+c+bottle);
}
int main(int argc, char const *argv[])
{
int num = 100/2;
printf("一共可以喝%d瓶\n",num + GetNumber(num,num,0));
return 0;
}
运行结果
这篇关于java2个啤酒瓶换一瓶啤酒,一道笔试题:每瓶啤酒2元,3个空酒瓶或者5个瓶盖可换1瓶啤酒。100元最多可喝多少瓶啤酒?...的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!