本题将会给出
组测试数据,确切数字未知,您需要一直读入直到特定的结尾;您也可以参考 牛客网在线判题系统使用帮助 获得更多的使用帮助。每组测试数据描述如下:
在一行上输入一个整数
,代表小张手上的空汽水瓶数量。特别地,
代表输入结束,您只需要立即退出,不需要针对这种情况进行处理。
对于每一组测试数据,新起一行。输出一个整数,代表小张最多可以喝到的汽水数量。
3 10 81 0
1 5 40
对于第一组测试数据,共有
个空瓶,可以换
瓶汽水。可以证明无法再做任何兑换,因此最多可以喝到
瓶汽水。
对于第二组测试数据:
第一轮兑换,共有
个空瓶。可以换
瓶汽水,余下
个空瓶;
第二轮兑换,刚刚余下
个空瓶、加上刚刚兑换的
瓶汽水喝完,共有
个空瓶。可以换
瓶汽水,余下
个空瓶;
第三轮兑换,刚刚余下
个空瓶、加上刚刚兑换的
瓶汽水喝完、再找老板借
个空瓶,共有
个空瓶。可以换
瓶汽水,余下
个空瓶。喝完之后不要忘记归还借的空瓶。
综上,一共可以喝到
瓶汽水。
import sys for line in sys.stdin: a = int(line.replace("\n", "")) b = 0 while a >= 2: if a == 0: break b += a // 3 a = a // 3 + a % 3 if a == 2: # a = 3 b += 1 print(b) break if a == 1: print(b) break
# 第22题 空瓶问题 a_input = [] while True: a = input() if a != '0': a_input.append(a) else: break for i in a_input: i_int = int(i) n_sum = 0 zc = i_int // 3 ys = i_int % 3 two_sum = zc + ys n_sum += zc while two_sum >2 : i_int = two_sum zc = i_int // 3 ys = i_int % 3 two_sum = zc + ys n_sum += zc if two_sum == 2: n_sum += 1 print(n_sum)