[解题报告]11689 - Soda Surpler
题目大意
题目原文:http://uva.onlinejudge.org/external/116/11689.pdf
背景:
Tim 是一个非常爱喝汽水的人。由于他没有钱,所以他要喝汽水的唯一方法就是收集空汽水瓶子,然后拿去回收换取钱再去买新汽水来喝。除了他自己喝完的空瓶子,Tim也会到街上去收集别人喝完的空瓶子。有一天,他非常的渴,他要尽可能的喝汽水,直到他得不到任何一瓶为止。
输入:
输入的第1列有一个整数N,代表以下有多少组测试数据。
每组测试数据1列,含有 3个整数 e,f,c 。e(0 <= e < 1000)代表Tim一开始拥有的空瓶子数目,f(0 <= f < 1000)代表Tim在这一天他在街上收集到的空瓶子数目,c(1 < c < 2000)代表多少个空瓶子可以换一瓶新的汽水。
请参考SampleInput。
输出:
对每一组测试数据输出一列,代表 Tim 可以喝到多少瓶汽水。
算法:
这也是比较简单的一道题,这道题目和我们老师组织ACM进行选拔的时候一样,记得那时候我做错了,原因是想得太简单了。
代码:
这里附上我的代码,你可以去这里提交你的代码验证你的代码是否正确。
View Code
#include<stdio.h> int main(void) { int n,a,b,c,d,sum,flag; scanf("%d",&n); while(n--) { sum=0; scanf("%d %d %d",&b,&d,&c); a=b+d; while(a) { flag=a/c; sum+=a/c; a=flag+a%c; if(a<c-1)break; else if(a<=c-1)break; } printf("%d\n",sum); } return 0; }