문제
승현이는 N(2 ≤ N ≤ 10) 진법의 수 X(1 ≤ X ≤ N^10,000,000) 를 공책에 적었다.
승현이는 손이 점점 아프기 시작했고, 머릿속에서 문득 X를 (N-1)로 나눈 나머지가 궁금해졌다.
승현이를 도와 N진법의 수 X가 주어졌을 때에 X를 (N-1)로 나눈 나머지를 계산하는 프로그램을 작성하라.
예를 들면, 9진법의 수 234는 10진법으로 193이고, 8로 나눈 나머지는 1이 된다.
풀이방법
n진법으로 표현된 수를 (n-1)로 나누면 각 자리 수마다 자리 수의 값만큼 나머지가 생긴다.
즉 9진법으로 표현된 234를 8로 나누게 될 경우 9^2자리에는 나머지가 2, 9^1자리에는 나머지 1, 9^0자리에는 나머지가 4가 생긴다.
이러한 규칙을 이용해 n진법으로 표현된 수의 각 자리수의 합,
즉 각 자리수를 n-1로 나누었을 때 나머지들의 합을
다시 (n-1)로 나눈 값을 출력한다.
소스코드
package samsung;
import java.util.*;
public class s_7193 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int tc = sc.nextInt();
for(int t = 1; t <= tc; t++) {
long n = sc.nextLong();
String s = sc.next();
long sum = 0;
for(int i = 0; i < s.length(); i++) {
sum += s.charAt(i) - '0';
}
System.out.println("#" + t + " " + sum%(n-1));
}
}
}
'Problem Solving > SWEA' 카테고리의 다른 글
[SWEA] 8840. 아바바바 (0) | 2020.02.29 |
---|---|
[SWEA] 3408. 세가지 합 구하기 (1) | 2020.02.29 |
[SWEA] 4579. 세상의 모든 팰린드롬 2 (0) | 2020.02.29 |
[SWEA] 6781. 삼삼 트리플 게임 (0) | 2020.02.28 |
[SWEA] 6057. 그래프의 삼각형 (0) | 2020.02.28 |
댓글