Python程序:计算可覆盖的方块数量


假设一条路径上有n个方块,一个工人正在在方块上放置彩色瓷砖。工人的放置方式是:如果路径中方块的编号能被4或2整除,但不能被42整除,则放置彩色瓷砖。如果工人一开始有k块彩色瓷砖,我们需要找出他可以覆盖的方块数量。

例如,如果输入k = 16,则输出为32。

为了解决这个问题,我们将遵循以下步骤:

  • MOD = 10^9 + 7
  • 商 := ⌊k / 20⌋
  • 余数 := k mod 20
  • 如果余数为0,则
    • 返回((42 * 商 - 2) mod MOD)
  • 否则,
    • 返回((42 * 商 + 2 * 余数) mod MOD)

示例

让我们来看下面的实现,以便更好地理解:

def solve(k):
   MOD = 10**9 + 7
   quotient = k // 20
   remainder = k % 20
   if remainder == 0:
      return ((42 * quotient - 2) % MOD)
   else:
      return ((42 * quotient + 2 * remainder) % MOD)

print(solve(16))

输入

16

输出

32

更新于:2021年10月23日

241 次浏览

开启你的职业生涯

完成课程获得认证

开始学习
广告