牛客网: [编程题]三色球
有红、黄、蓝三种颜色的气球。
在牛客王国,1个红气球+1个黄气球+1个蓝气球可以兑换一张彩票。
2个红气球+1个黄气球可以兑换1个蓝气球。
2个黄气球+1个蓝气球可以兑换1个红气球。
2个蓝气球+1个红气球可以兑换1个黄气球。
现在牛牛有a个红气球,b个黄气球, c个蓝气球,牛牛想知道自己最多可以兑换多少张彩票。
func solve ( _ a: Int, _ b: Int, _ c: Int) -> Int {
let low = min(a, b, c)
var result = low
let r = a - low
let y = b - low
let blue = c - low
if r == 0{
result += min(y / 3, blue / 2)
}
else if y == 0{
result += min(blue / 3, r / 2)
}
else{
result += min(r / 3, y / 2)
}
return result
}
注意:
计算方式是,三个颜色,抵一张
先找出最小的,全部换掉,
然后打折兑换,
为什么 A / 3 , B / 2
a 1 + b 1 + c 1 = 抵用 1
c 1 = a 2 + b 1
总结下
a 3 + b 2 = 抵用 1
还要注意,
三种颜色,取 A 2 B 1 , 兑换 C 1,
排列

这篇博客讨论了一个编程问题,涉及如何利用红、黄、蓝三种颜色的气球进行兑换彩票的策略。问题中给出了不同颜色气球之间的兑换规则,并要求找到最大彩票兑换数量。解决方案首先通过消除最少数量的气球,然后使用剩余的气球按比例兑换,确保兑换效率最大化。博客还提到了在不同兑换情况下的优先级选择和限制条件。
最低0.47元/天 解锁文章
691

被折叠的 条评论
为什么被折叠?



