小F的永久代币卡回本计划 | 豆包MarsCode AI刷题

95 阅读1分钟

小F最近迷上了玩一款游戏,她面前有一个永久代币卡的购买机会。该卡片的价格为 a 勾玉,每天登录游戏可以返还 b 勾玉。小F想知道她至少需要登录多少天,才能让购买的永久代币卡回本。

测试样例

样例1:

输入:a = 10, b = 1 输出:10

样例2:

输入:a = 10, b = 2 输出:5

样例3:

输入:a = 10, b = 3 输出:4

解题思路

  1. 理解问题:我们需要计算小F需要登录多少天才能使得返还的勾玉总数等于或超过卡片的价格 a
  2. 公式推导:每天返还 b 勾玉,设需要登录的天数为 days,则有 days * b >= a
  3. 求解天数:通过公式 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)