題目連結: https://zerojudge.tw/ShowProblem?problemid=d189
# 解題思路
再剩餘瓶數在 3 瓶以上的話,就讓自己的瓶做換算
自己手賞的瓶子就會變成 a/3 (換來的) + a%3 (沒換的)
自己手上的空瓶在最後,只會剩下 0、1、2 三種狀況
如果最後是剩下 2 瓶,則能再多換到一瓶
# 程式碼
#include<iostream> | |
using namespace std; | |
int main() | |
{ | |
int a, sum; | |
while(cin>>a) | |
{ | |
int sum=a; | |
while(true) | |
{ | |
sum+=a/3; | |
if (a<3) break; | |
a=(a/3+a%3); | |
} | |
if (a==2) | |
sum+=1; | |
cout<<sum<<endl; | |
} | |
} |