本题将会给出
组测试数据,确切数字未知,您需要一直读入直到特定的结尾;您也可以参考 牛客网在线判题系统使用帮助 获得更多的使用帮助。每组测试数据描述如下:
在一行上输入一个整数
,代表小张手上的空汽水瓶数量。特别地,
代表输入结束,您只需要立即退出,不需要针对这种情况进行处理。
对于每一组测试数据,新起一行。输出一个整数,代表小张最多可以喝到的汽水数量。
3 10 81 0
1 5 40
对于第一组测试数据,共有
个空瓶,可以换
瓶汽水。可以证明无法再做任何兑换,因此最多可以喝到
瓶汽水。
对于第二组测试数据:
第一轮兑换,共有
个空瓶。可以换
瓶汽水,余下
个空瓶;
第二轮兑换,刚刚余下
个空瓶、加上刚刚兑换的
瓶汽水喝完,共有
个空瓶。可以换
瓶汽水,余下
个空瓶;
第三轮兑换,刚刚余下
个空瓶、加上刚刚兑换的
瓶汽水喝完、再找老板借
个空瓶,共有
个空瓶。可以换
瓶汽水,余下
个空瓶。喝完之后不要忘记归还借的空瓶。
综上,一共可以喝到
瓶汽水。
TestNumber=[0]*10 #最多十个数 Cola=0 #能喝的可乐数 #输入空汽水瓶数 for i in range(len(TestNumber)): n=int(input()) TestNumber[i]=n if TestNumber[i]==0: break #计算 for i in range(len(TestNumber)): #如果初始汽水瓶少于3,就不输出,EnterLoopFlag是标记 EnterLoopFlag=False # 算法 while TestNumber[i]>=3: EnterLoopFlag=True Cola+=int(TestNumber[i]/3) # 已经喝过的汽水瓶加上之前没换出去的汽水瓶 TestNumber[i]=int(TestNumber[i]/3)+TestNumber[i]%3 # 根据规则,如果最后还剩2个空汽水瓶,可以再喝一瓶 if TestNumber[i]==2: Cola+=1 if EnterLoopFlag==True: print(Cola) Cola=0
import sys max_iter = 10 max_n = 100 iters = 0 for line in sys.stdin: iters += 1 # 超出最大输入行数时退出 if iters > max_iter: break n = int(line) # 零或非法输入时退出 if n <= 0&nbs***bsp;n > max_n: break ans = n//3 last_n = n%3 + n//3 while last_n >= 3: bot = last_n//3 ans += bot last_n = last_n%3 + bot if last_n == 2: # 只需在最后一次考虑是否向老板借瓶子,且只有自己有两个时,才能借得一个 ans += 1 print(ans)
print(floor(int(num) * 3 / 2) - int(num))
def exchange(num): if num==2: #递归边界 两个空瓶能换一瓶 return 1 elif num==1: #递归边界 一个空瓶就算了 return 0 else: return num//3+exchange(num//3+num%3) #,超过3时,喝的数量始终是num//3 while True: try: num = eval(input()) if not num: break else: print(exchange(num)) except EOFError: break
while True:
try:
# BottleNum=int(input('输入手上的瓶子数量:'))
BottleNum=int(input())
# print('手上的瓶子数量:',BottleNum)
if BottleNum>0 and (BottleNum*10)%10==0:
RestBottleNum = int(BottleNum / 3) + BottleNum % 3
# print('剩余瓶子数量')
# print(RestBottleNum)
DrinkCount=int(BottleNum / 3)
while RestBottleNum>=2:
if RestBottleNum==2 or RestBottleNum==3:
DrinkCount+=1
break
DrinkCount += int(RestBottleNum / 3)
RestBottleNum = int(RestBottleNum / 3)+RestBottleNum % 3
# 如果小张手上有n个空汽水瓶,最多可以换多少瓶汽水喝?
# print('能喝的瓶数:',DrinkCount)
print(DrinkCount)
else:
# print("输入有误,瓶子数量必须是正整数")
break
except:
# print('请检查输入,输入必须为正整数')
pass
def hsh(n): num=0 while n !=0: if n%3==0: num+=n//3 n=n//3 if n%3==2: k=(n+1)//3 num+=k n=k-1 if n%3 ==1: if (n+2)//3<2: num+=0 break else: k=(n+2)//3 num+=k n=k-2 print(num) while True: try: a=int(input()) if a !=0: hsh(a) except: break