小F最近迷上了玩一款游戏,她面前有一个永久代币卡的购买机会。该卡片的价格为 a 勾玉,每天登录游戏可以返还 b 勾玉。小F想知道她至少需要登录多少天,才能让购买的永久代币卡回本。
测试样例
样例1:
输入:
a = 10, b = 1输出:10
样例2:
输入:
a = 10, b = 2输出:5
样例3:
输入:
a = 10, b = 3输出:4
解题思路
- 理解问题:我们需要计算小F需要登录多少天才能使得返还的勾玉总数等于或超过卡片的价格
a。 - 公式推导:每天返还
b勾玉,设需要登录的天数为days,则有days * b >= a。 - 求解天数:通过公式
days = ceil(a / b)可以求得最少需要的天数。
def solution(a: int, b: int) -> int:
# 计算最少需要的天数
days = (a + b - 1) // b # 使用整数除法向上取整
return days
if __name__ == '__main__':
print(solution(10, 1) == 10)
print(solution(10, 2) == 5)
print(solution(10, 3) == 4)