刮刮卡兑换
题目描述(模拟实现)
英氏公司的婴儿米粉每盒里都有一张刮刮卡,最近正在举办一次促销优惠活动。凭3个刮刮卡可以兑换一盒同等价位的米粉,并且可以一直循环下去(但不允许暂借或赊账)。请你计算一下,如果不浪费刮刮卡,尽量地参加活动,那么,对于初始买入的n盒米粉,最后一共能拿到多少盒米粉。
输入
一个整数n,表示开始购买的米粉数量(0<n<10000)
输出
一个整数,表示实际得到的米粉数量
样例输入
11
样例输出
16
破题思路
主要涉及函数:一个计算两个数的商和余数的函数,商和余数的加和作为下一次兑换时可使用的卡片数。
程序源码
x = int(input())
r = 3
sum = x
y = 0
while x > 0:
#divmod() 函数把除数和余数运算结果结合起来,返回一个包含商和余数的元组(a // b, a % b)。
x, y = divmod(x+y,3)
sum += x
print(sum)