[백준 2028번] 자기복제수
[백준 2028번] 자기복제수
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class 백준_손수경_정답_2028 { public static void main(String[] args) throws IOException{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int n = Integer.valueOf(br.readLine()); for (int i = 0; i < n; i++) { int num = Integer.valueOf(br.readLine()); int temp = num % 10; int doubleNum = temp * temp % 10; if (temp == doubleNum) { System.out.println("YES"); } else { System.out.println("NO"); } } } } | cs |
처음에는 입력받은 수의 일의 자리랑 입력받은 수의 일의 자리끼리 제곱한 수의 일의자리를 비교할려고 했는데 틀렸다고 나옴. 그래서 알고 봤더니, 입력받은 숫자와 제곱한 뒤의 자리 숫자가 같은 경우 YES를 출력해야되는 문제였음 ㅎㅎ 그래서 다음과 같이 코드 수정
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class 백준_손수경_정답_2028 { public static void main(String[] args) throws IOException{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int n = Integer.valueOf(br.readLine()); for (int i = 0; i < n; i++) { int num = Integer.valueOf(br.readLine()); int size = String.valueOf(num).length(); int doubleNum = num * num % (int)Math.pow(10, size); if (num == doubleNum) { System.out.println("YES"); } else { System.out.println("NO"); } } } } | cs |
풀이 방법
입력받은 숫자의 길이만큼 나눈 수의 나머지가 입력받은 수와 같다면 YES, 아니라면 NO를 출력하도록 함.
댓글남기기