Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

파이썬에서 다룰 수 있는 블록의 수를 알아내는 프로그램

<시간/>

경로에 n개의 블록이 있고 작업자가 블록에 색상 타일을 놓고 있다고 가정합니다. 작업자는 경로에 있는 블록 번호가 4 또는/및 2로 나눌 수 있지만 42로 나눌 수 없는 경우 색 타일을 놓는 방식으로 블록을 배치하고 있습니다. 우리는 그가 k개의 색상 타일로 시작했다면 그가 커버할 수 있는 블록의 수를 알아내야 합니다.

따라서 입력이 k =16과 같으면 출력은 32가 됩니다.

이 문제를 해결하기 위해 다음 단계를 따릅니다. −

  • MOD =10^9 + 7
  • 몫 :=(k / 20)의 하한값
  • 나머지 :=k 모드 20
  • 나머지가 0이면
    • return((42 * 몫 - 2) 모드 MOD)
  • 그렇지 않으면
    • return((42 * 몫 + 2 * 나머지) 모드 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