公司群里发了这么一道小学3年级的算术题
计算规则:2块钱一瓶汽水,两个瓶子可以换一瓶汽水,四个瓶盖可以换一瓶汽水.
同事们算来算去都没有统一的答案,身为程序员的我们,简直不能忍受这样的欺凌。
一言不合就用程序来解决~
public static void main(String[] args) {
int money = 10; //总钱数
int bottle = 0, cap = 0, sum = 0;// bottle表示瓶子个数,c表示盖子个数,sum表示总的可以喝到的汽水数;
boolean flag = true;
//一次性花光,全部买入汽水
while (money > 0) {
sum += money / 2;
bottle += money / 2;
cap += money / 2;
money = 0;
}
System.out.println(" sum=" + sum + " 剩余瓶子=" + bottle + " 剩余盖子=" + cap);
while (flag) {
//兑换瓶子
while (bottle >= 2) {
sum += bottle / 2;
cap += bottle / 2;
//剩余瓶子数量=总瓶子数量-可用于兑换汽水的瓶子数量+兑换汽水数量
bottle = bottle - (bottle / 2) * 2 + (bottle / 2);
System.out.println(" sum=" + sum + " 剩余瓶子=" + bottle + " 剩余盖子=" + cap);
}
//兑换瓶盖
while (cap >= 4) {
sum += cap / 4;
bottle += cap / 4;
//剩余瓶盖数量=总瓶盖数量-可用于兑换汽水的瓶盖数量+兑换汽水数量
cap = cap - (cap / 4) * 4 + (cap / 4);
System.out.println(" sum=" + sum + " 剩余瓶子=" + bottle + " 剩余盖子=" + cap);
}
//判断是否可兑换汽水
if (bottle < 2 && cap < 4)
flag = false;
}
System.out.println("总共可以喝" + sum + "瓶!" + " 剩余瓶子=" + bottle + " 剩余盖子=" + cap);
}
打印结果
sum=5 剩余瓶子=5 剩余盖子=5
sum=7 剩余瓶子=3 剩余盖子=7
sum=8 剩余瓶子=2 剩余盖子=8
sum=9 剩余瓶子=1 剩余盖子=9
sum=11 剩余瓶子=3 剩余盖子=3
sum=12 剩余瓶子=2 剩余盖子=4
sum=13 剩余瓶子=1 剩余盖子=5
sum=14 剩余瓶子=2 剩余盖子=2
sum=15 剩余瓶子=1 剩余盖子=3
总共可以喝15瓶! 剩余瓶子=1 剩余盖子=3
**
万事万物皆对象,一切逻辑皆算法。
**