题意是说,若干个soda水空瓶子可以换一瓶soda水。Tim这家伙自己手头有e个空瓶子(0<=e<1000),从外面捡来了f个空瓶子(0<=f<1000),而c个空瓶子可以换1瓶soda水(1<c<2000),问,Tim能喝到多少瓶soda水。
题目还是很简单的,简单按照上述的规则模拟即可。注意,通过uDebug以及uva提交测试,发现这个不是中国版的可以借瓶子喝完再还的那个版本。
python版本AC代码
testcase = int(input())
while testcase > 0:
testcase -= 1
e,f,c = map(int,input().split())
ans = 0
i = e + f
while i > 0:
if i >= c:
ans += i//c
i = i//c + i%c
else:
i = 0
print(ans)
C++版本AC代码
#include <iostream>
#include<cstdio>
using namespace std;
//#define ZANGFONG
int main()
{
#ifdef ZANGFONG
freopen("in.txt","r",stdin);
freopen("out.txt","w",stdout);
#endif // ZANGFONG
int N,e,f,c,i,ans;
scanf("%d\n",&N);
while(N--)
{
scanf("%d%d%d\n",&e,&f,&c);
ans = 0;
i = e + f;
while(i)
{
if(i >= c)
{
ans += i/c;
i = i/c + i%c;
}
else i = 0;
/*不是中国版的可以借瓶子喝完再还的那个版本
else
{
if(i+1 == c) ans++;
i = 0;
}
*/
}
printf("%d\n",ans);
}
return 0;
}