자바 백준 6378번
브론즈 3
https://www.acmicpc.net/problem/6378
문제 보기
분류: 수학, 구현, 문자열, 임의 정밀도, 큰 수 연산
코드 풀이
import java.util.Scanner;
public class Main {
// 입력값을 저장하는 변수
static String input;
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// 사용자로부터 여러 양의 정수 입력을 받음
while (true) {
// 한 줄을 입력받아 input 변수에 저장
input = sc.nextLine();
// 입력값이 "0"이면 루프 종료
if (input.equals("0")) {
break;
}
// 입력값의 디지털 루트를 계산하고 출력
int digitalRoot = calculateDigitalRoot(input);
System.out.println(digitalRoot);
}
}
// 디지털 루트를 계산하는 메서드
private static int calculateDigitalRoot(String input) {
// 입력값이 한 자리 숫자가 될 때까지 반복
while (input.length() > 1) {
// 각 자리수를 더한 값을 저장하는 변수
int sum = 0;
// 각 자리수를 더함
for (int i = 0; i < input.length(); i++) {
sum += Character.getNumericValue(input.charAt(i));
}
// 새로운 값을 input 변수에 저장
input = String.valueOf(sum);
}
// 결과값을 정수로 변환하여 반환
return Integer.parseInt(input);
}
}
'공부하기 > 백준' 카테고리의 다른 글
[Java] 백준 풀기 1699 - 제곱수의 합 (0) | 2024.01.30 |
---|---|
[Java] 백준 풀기 2407 - 조합 (0) | 2024.01.27 |
[Java] 백준 풀기 5576 - 콘테스 (0) | 2024.01.24 |
[Java] 백준 풀기 13866 - 팀 나누기 (2) | 2024.01.23 |
[Java] 백준 풀기 2875 - 대회 or 인턴 (0) | 2024.01.22 |