이 글에서는 Java를 사용하여 정수의 자릿수를 계산하는 방법을 알아봅니다. 정수의 자릿수는 반복문과 카운터 변수를 활용하면 간단하게 셀 수 있습니다.
아래는 실제 동작 예시입니다.
입력
숫자 : 15161718
출력
결과 : 8
알고리즘
Step 1 - 시작 Step 2 – 정수형 변수 두 개(my_count와 my_input)를 선언합니다. Step 3 - 사용자로부터 값을 입력받거나 값을 직접 정의합니다. Step 4 – for 반복문을 사용하여 입력값을 10으로 나누어 더 이상 나눌 수 없을 때까지 반복하고, 반복할 때마다 카운터 값을 1씩 증가시킵니다. Step 5 - 카운터 값을 결과로 출력합니다. Step 6 - 종료
예제 1: 사용자 입력으로 자릿수 세기
이 예제에서는 Scanner 클래스를 통해 사용자가 직접 숫자를 입력하면, 해당 숫자의 자릿수를 계산하여 화면에 출력합니다.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
int my_count , my_input;
my_count = 0;
System.out.println("필요한 패키지가 임포트되었습니다");
Scanner my_scanner = new Scanner(System.in);
System.out.println("리더 객체가 생성되었습니다");
System.out.print("숫자를 입력하세요 : ");
my_input = my_scanner.nextInt();
for (; my_input != 0; my_input /= 10, ++my_count) {
}
System.out.println("입력한 숫자의 자릿수는 : " + my_count);
}
}출력
필요한 패키지가 임포트되었습니다 리더 객체가 생성되었습니다 숫자를 입력하세요 : 15161718 입력한 숫자의 자릿수는 : 8
예제 2: 미리 정의된 값으로 자릿수 세기
이 예제에서는 정수 값이 코드 내에 미리 정의되어 있으며, 해당 값을 콘솔에 출력하고 자릿수를 계산합니다.
public class Main {
public static void main(String[] args) {
int my_count = 0, my_input;
my_count = 0;
my_input = 15161718;
System.out.println("정의된 숫자는 " + my_input);
for (; my_input != 0; my_input /= 10, ++my_count) {
}
System.out.println("입력한 숫자의 자릿수는 : " + my_count);
}
}출력
정의된 숫자는 15161718 입력한 숫자의 자릿수는 : 8
동작 원리 설명
이 프로그램의 핵심 로직은 for 반복문에 있습니다. my_input /= 10은 입력값을 10으로 나눈 몫을 다시 저장하는 연산으로, 한 번 실행될 때마다 마지막 자릿수가 하나씩 제거됩니다. 예를 들어 15161718 → 1516171 → 151617 → ... 과 같이 줄어들다가 결국 0이 되면 반복문이 종료됩니다. 이때 카운터인 my_count가 몇 번 증가했는지가 곧 자릿수가 됩니다.
참고로 이 방법 외에도 String.valueOf(my_input).length()처럼 문자열로 변환해 길이를 구하는 방법이나, Math.log10()을 활용한 수학적 접근 방식도 있습니다. 다만 반복문을 사용하는 방식이 알고리즘 학습에는 가장 적합합니다.