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
广告