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 次瀏覽

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告