https://www.acmicpc.net/problem/1009
#Solution
당연하지만 시간초과 코드
T = int(input())
for _ in range(T):
a, b = map(int, input().split())
print((a ** b) % 10)
분산 처리 정답 코드
컴퓨터는 10대이므로 각 수를 승수만큼 곱해서 10으로 나눈 것의 1의 자리만 출력하면 된다.
0~9까지의 답을 따로 구해주고 각 숫자가 제곱하면 끝의 자리가 어떻게 되는지만 알면 수월하게 풀 수 있다.
0 | 10 |
1 | 1 |
2 | 2 4 8 6 |
3 | 9 7 1 |
4 | 4 6 |
5 | 5 |
6 | 6 |
7 | 9 3 1 |
8 | 8 4 2 6 |
9 | 9 1 |
T = int(input())
for _ in range(T):
a, b = map(int, input().split())
a = a % 10
if a == 0:
print(10)
elif a == 1 or a == 5 or a == 6:
print(a)
elif a == 4 or a == 9:
b = b % 2
if b == 1:
print(a)
else:
print((a * a) % 10)
else:
b = b % 4
if b == 0:
print((a**4) % 10 % 10 % 10)
else:
print((a**b) % 10 % 10 % 10)
'Programming [Python] > 백준 알고리즘 솔루션' 카테고리의 다른 글
#201 백준 파이썬 [1212] 8진수 2진수 (0) | 2019.11.13 |
---|---|
#200 백준 파이썬 [2420] 사파리월드 (0) | 2019.11.13 |
#198 백준 파이썬 [1920] 수 찾기 - 이분 탐색 (0) | 2019.11.13 |
#197 백준 파이썬 [1026] 보물 (0) | 2019.11.13 |
#196 백준 파이썬 [9663] N-Queen (3) | 2019.11.12 |