18/3=6,喝完6瓶酒又有6个盖换2瓶,喝完2瓶有2个盖,借一瓶酒,喝完后共3盖换一瓶酒还掉,所以一共可以换酒=6+2+1=9瓶酒
public static void main(String[] args) {
int n = 18;
System.out.printf("如果有%d瓶酒,则总共可以喝%d瓶酒", n, n + function(n));
}
/**
* @param n 瓶盖数量
* @return
*/
public static int function(int n) {
if (n < 3) {
return 0;
}
return n / 3 + function(n / 3 + n % 3);
}
8