本题将会给出
组测试数据,确切数字未知,您需要一直读入直到特定的结尾;您也可以参考 牛客网在线判题系统使用帮助 获得更多的使用帮助。每组测试数据描述如下:
在一行上输入一个整数
,代表小张手上的空汽水瓶数量。特别地,
代表输入结束,您只需要立即退出,不需要针对这种情况进行处理。
对于每一组测试数据,新起一行。输出一个整数,代表小张最多可以喝到的汽水数量。
3 10 81 0
1 5 40
对于第一组测试数据,共有
个空瓶,可以换
瓶汽水。可以证明无法再做任何兑换,因此最多可以喝到
瓶汽水。
对于第二组测试数据:
第一轮兑换,共有
个空瓶。可以换
瓶汽水,余下
个空瓶;
第二轮兑换,刚刚余下
个空瓶、加上刚刚兑换的
瓶汽水喝完,共有
个空瓶。可以换
瓶汽水,余下
个空瓶;
第三轮兑换,刚刚余下
个空瓶、加上刚刚兑换的
瓶汽水喝完、再找老板借
个空瓶,共有
个空瓶。可以换
瓶汽水,余下
个空瓶。喝完之后不要忘记归还借的空瓶。
综上,一共可以喝到
瓶汽水。
#取巧一下,懒得思考了 def bottle(a): kongbo = [] hebo = 0 mybo = a shengxiabo = 0 lastbo = 0 if mybo == 1: return 0 elif mybo == 2: return 1 else: while int(mybo/3) != 0: lastbo = int(mybo/3) hebo+= lastbo kongbo.append(mybo%3) mybo = int(mybo/3) for i in range(len(kongbo)): shengxiabo += kongbo[i] shengxiabo += lastbo if shengxiabo == 0&nbs***bsp;shengxiabo == 1: return hebo elif shengxiabo == 2&nbs***bsp;shengxiabo == 3: return hebo+1 elif shengxiabo == 4&nbs***bsp;shengxiabo == 5: return hebo+2 elif shengxiabo == 6&nbs***bsp;shengxiabo == 7: return hebo+3 elif shengxiabo == 8&nbs***bsp;shengxiabo == 9: return hebo+4 x = int(input()) mylist = [] while x != 0: mylist.append(bottle(x)) x = int(input()) for i in range(len(mylist)): print(mylist[i])