检查在 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)

更新于: 2021年1月19日

402 次浏览

开启你的 职业生涯

通过完成课程获得认证

开始
广告