链接:https://www.nowcoder.com/questionTerminal/57328decf4734bdb8d8b68a324640806?orderByHotValue=1&questionTypes=000100&mutiTagIds=592&page=1&onlyReference=false
来源:牛客网
有红、黄、蓝三种颜色的气球。
在牛客王国,1个红气球+1个黄气球+1个蓝气球可以兑换一张彩票。
2个红气球+1个黄气球可以兑换1个蓝气球。
2个黄气球+1个蓝气球可以兑换1个红气球。
2个蓝气球+1个红气球可以兑换1个黄气球。
现在牛牛有a个红气球,b个黄气球, c个蓝气球,牛牛想知道自己最多可以兑换多少张彩票。
//彩票初始化为 a,b,c中的最小值
/*
然后只剩两种颜色,根据
2个红气球+1个黄气球可以兑换1个蓝气球。
2个黄气球+1个蓝气球可以兑换1个红气球。
2个蓝气球+1个红气球可以兑换1个黄气球。
c蓝气球为0, 则三个红气球 + 2个黄气球 得 一张彩票a b
a红气球为0, 则三个黄气球 + 2蓝气球 得 一张彩票 b c
b黄气球为0, 则三个蓝气球 + 2个红气球 得 一张彩票 c a
*/
public int threeMin(int a, int b, int c){
int min = a;
if(min > b){
min = b;
}
if(min > c){
min = c;
}
return min;
}
public int change(int fir, int sec){
int count = 0;
while (fir > 0 && sec > 0){
fir -= 3;
sec -= 2;
if(fir >= 0 && sec >= 0){
count++;
}
}
return count;
}
public int solve (int a, int b, int c) {
// write code here
int count = threeMin(a,b,c);
a -= count;
b -= count;
c -= count;
if(a == 0){
return count + change(b,c);
}else if (b == 0){
return count + change(c,a);
}else{
return count + change(a,b);
}
}