题意理解
有n个空瓶,3个空瓶兑换一个新瓶,2个空瓶可借一瓶喝完凑成3个空瓶再兑换一个新瓶还回去。问最多喝几瓶?
问题分析
用类似进制转换的思路,第一轮,n/3得到新瓶数,n%3得到这一轮剩余空瓶数,将新瓶数+剩余空瓶数放到第二轮。依次类推,直到n/3 == 0表示没有新瓶,如果n%3等于2,额外得一瓶。将这些新瓶相加就是可以喝的瓶数。
其他
分析可得到,1个空瓶喝不了,2个空瓶喝一瓶,一直这样循环,规律就是瓶数是空瓶整除2的商,余数不管。
链接
https://github.com/xierensong/learngit/blob/master/ncode/11/11.cpp