class Solution { int ans=0; public: int fun(int numBottles,int n,int numExchange){ ans+=numBottles; //置空 n+=numBottles; numBottles=0; //替换 numBottles=n/numExchange; n-=numBottles*numExchange; if(numBottles==0) return ans; return fun(numBottles,n,numExchange); } int numWaterBottles(int numBottles, int numExchange) { return fun(numBottles,0,numExchange); } };
两步状态转移