有这样一道智力题:“某商店规定:三个空汽水瓶可以换一瓶汽水。小张手上有十个空汽水瓶,她最多可以换多少瓶汽水喝?”答案是5瓶,方法如下:先用9个空瓶子换3瓶汽水,喝掉3瓶满的,喝完以后4个空瓶子,用3个再换一瓶,喝掉这瓶满的,这时候剩2个空瓶子。然后你让老板先借给你一瓶汽水,喝掉这瓶满的,喝完以后用3个空瓶子换一瓶满的还给老板。如果小张手上有n个空汽水瓶,最多可以换多少瓶汽水喝?
解析:思路是每三瓶换一瓶,剩下两瓶的时候就可以直接在喝的瓶数上+1;进行除和取余操作就可以实现;
import java.util.Scanner;
public class Trans {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while (!scanner.hasNext("0")) {
int num = scanner.nextInt();
System.out.println(Solution(num));
}
scanner.close();
}
private static int Solution(int num) {
int empty = 0;
int drink = 0;
int remain = 0;
while (num > 2){
drink = num/3;
remain = num%3;
num = drink + remain;
empty = empty + drink;
}
if(num == 1 ){
empty=empty;
}else if (num == 2){
empty = empty + 1;
}
return empty;
}
}