-
[브론즈 II] 1009번 :: 분산처리 / Java백준/브론즈 2022. 11. 11. 17:44
문제
https://www.acmicpc.net/problem/1009
1009번: 분산처리
입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트 케이스에 대해 정수 a와 b가 주어진다. (1 ≤ a < 100, 1 ≤ b < 1,000,000)
www.acmicpc.net
코드
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int T = Integer.parseInt(br.readLine()); StringTokenizer st; for(int i=0; i<T; i++) { st = new StringTokenizer(br.readLine()); int a = Integer.parseInt(st.nextToken()); int b = Integer.parseInt(st.nextToken()); int idx = 1; for(int j=0; j<b; j++) { idx = (a*idx) % 10; } if(idx == 0) idx = 10; System.out.println(idx); } } }
a의 b제곱 한 수의 마지막 자리를 출력하면 된다는 건 알겠는데
a와 b의 범위가 (1 ≤ a < 100, 1 ≤ b < 1,000,000)여서 초과될 게 뻔해보여
구글링해서 다른 방법을 찾아 손으로 풀어보니 이해가 됐다
idx를 이용한 for문을 돌리면 나머지가 나오고
그 나머지로 출력을 하면 된다
단, 0은 10으로 입력해주기!
'백준 > 브론즈' 카테고리의 다른 글
[브론즈 III] 4435번 :: 중간계 전쟁 / Java (0) 2022.11.11 [브론즈 III] 4153번 :: 직각삼각형 / Java (0) 2022.11.11 [브론즈 III] 3460번 :: 이진수 / Java (0) 2022.11.11 [브론즈 III] 3059번 :: 등장하지 않는 문자의 합 / Java (0) 2022.11.11 [브론즈 III] 3058번 :: 짝수를 찾아라 / Java (0) 2022.11.09