检查在 Python 中是否可以在岛上生存
假设有一个岛屿。该地点只有一家商店,这家商店始终营业,除了星期天。我们有以下值作为输入 -
- N(某人每天最多可以购买的食物数量)。
- S(某人需要生存的天数)。
- M(每天生存所需的食品数量)。
如果今天是星期一,我们需要在接下来的 S 天内生存。我们必须检查我们是否能够生存,如果可以,找到我们需要购买食品的最少天数,以便我们能够在接下来的 S 天内生存。
因此,如果输入类似于 S = 12、N = 24、M = 3,则输出将为 True,我们需要购买食品的最少天数为 2,因为我们可以使用 24 单位的食物生存 8 天(从当前星期一到下一个星期一),然后再次购买 12 单位的食物以供未来 4 天使用。
为了解决这个问题,我们将遵循以下步骤 -
- 如果 (N * 6 < M * 7 且 S > 6) 或 M > N,则
- 返回 False
- 否则,
- count := (M * S) / N 的商
- 如果 (M * S) 可以被 N 整除,则
- count := count + 1
- 返回 True 和 count
示例
让我们看看以下实现以更好地理解 -
def solve(S, N, M): if ((N * 6) < (M * 7) and S > 6) or M > N: return False else: count = (M * S) // N if ((M * S) % N) != 0: count += 1 return (True, count) S = 12 N = 24 M = 3 print(solve(S, N, M))
输入
12, 24, 3
Learn Python in-depth with real-world projects through our Python certification course. Enroll and become a certified expert to boost your career.
输出
(True, 2)
广告