import java.util.Scanner;
/**
* @author hll[yellowdradra@foxmail.com]
* @description 有这样一道智力题:“某商店规定:三个空汽水瓶可以换一瓶汽水。
* 小张手上有十个空汽水瓶,她最多可以换多少瓶汽水喝?”答案是5瓶,方法如下:先用9个空瓶子换3瓶汽水,
* 喝掉3瓶满的,喝完以后4个空瓶子,用3个再换一瓶,喝掉这瓶满的,这时候剩2个空瓶子。
* 然后你让老板先借给你一瓶汽水,喝掉这瓶满的,喝完以后用3个空瓶子换一瓶满的还给老板。
* 如果小张手上有n个空汽水瓶,最多可以换多少瓶汽水喝?
* @date 2021-05-25 23:10
**/
public class Main {
public static void main(String[] args) {
final Scanner scanner = new Scanner(System.in);
while (scanner.hasNext()) {
int n = scanner.nextInt();
if (n == 0) {
return;
}
int exchanges = 0;
while (n > 2) {
// 当前瓶数除3得到的商是兑换的瓶数
int remainder = n % 3;
// 当前瓶数模3得到的是未能参与兑换的瓶数
int quotient = n / 3;
// 兑换到的瓶数累加
exchanges += quotient;
// 兑换到的瓶数 + 未能参与兑换的瓶数 = 下一轮参与兑换的瓶数
n = remainder + quotient;
}
// 如果最后一轮剩下两个瓶子 则使用借一法(一看到这个题目就想到了小学奥数题。。)
// 则兑换到的瓶数加一
// 如果你剩下一瓶 你可以把这瓶子借给剩两瓶的同学让他兑换一瓶 然后要求分三分之一的汽水
// 如果有无数个剩下两瓶的同学 那么你将轻而易举完成资本的原始积累 /doge
System.out.println(n == 2 ? exchanges + 1 : exchanges);
}
}
}