题目:有这样一道智力题:“某商店规定:三个空汽水瓶可以换一瓶汽水。小张手上有十个空汽水瓶,她最多可以换多少瓶汽水喝?”答案是5瓶,方法如下:先用9个空瓶子换3瓶汽水,喝掉3瓶满的,喝完以后4个空瓶子,用3个再换一瓶,喝掉这瓶满的,这时候剩2个空瓶子。然后你让老板先借给你一瓶汽水,喝掉这瓶满的,喝完以后用3个空瓶子换一瓶满的还给老板。如果小张手上有n个空汽水瓶,最多可以换多少瓶汽水喝?
思路:除3取整和取余。如果最后只剩2个空瓶,这是特殊情况,可以借一瓶喝了,凑一瓶还他。
代码:
package com.huaWei;
import java.util.Scanner;
/**
* 汽水瓶
*/
public class qishuiping {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while (scanner.hasNext()){
int qishuiPing = scanner.nextInt();
if (qishuiPing == 0){
break;
}
// 调用方法计算结果
System.out.println(fun(qishuiPing));
}
}
/**
* 根据汽水瓶算可以喝到多少瓶汽水
* @param qishuiPing
* @return
*/
private static int fun(int qishuiPing) {
int count = 0;
while (qishuiPing>=3){
// 可以喝的瓶数
int temp = qishuiPing/3;
// 累加
count = count + temp;
// 剩余的空瓶数量
int yushu = qishuiPing%3;
// 空瓶数量 = 喝了的 + 剩余的
qishuiPing = temp + yushu;
}
// 如果汽水瓶还剩下2,那么就可以借一瓶来喝。这是特殊情况。
if (qishuiPing == 2){
count = count + 1;
}
return count;
}
}