# 코딩 문제 관련/파이썬
백준 2749번(python)
Hwiyong Jo
2020. 7. 12. 19:08
def make_matrix(A, matrix):
dummy_matrix = [[0 for _ in range(2)] for _ in range(2)]
for i in range(2):
for j in range(2):
for k in range(2):
dummy_matrix[i][j] += (matrix[i][k] * A[k][j])
dummy_matrix[i][j] %= 1000000
return dummy_matrix
def matmul(A, B):
if(B == 1):
for i in range(2):
for j in range(2):
A[i][j] %= 1000000
return A
elif((B%2) == 1):
matrix = matmul(A, B-1)
new_matrix = make_matrix(A, matrix)
return new_matrix
else:
matrix = matmul(A, B//2)
new_matrix = make_matrix(matrix, matrix)
return new_matrix
N = int(input())
A = [[1, 1], [1, 0]]
result = matmul(A, N)
print(result[0][1] % 1000000)