**함수를 이용하여 자리수 구하기
- 양의 정수값만 입력받기
do {
System.out.print("정수값을 입력하세요 : ");
i = stdIn.nextInt();
}while (num <= 0);
- 자리수 구하기
int digit = 0;
while (num > 0) {
digit++;
num /= 10;
//System.out.printf("계산과정 : digit = %d, i = %d \n", digit, i);
}
int digit 은 num을 10으로 나눈 횟수를 카운팅한다.
주석처리한 부분은 중간 계산과정을 보기 위해 입력.
버그 발생시 디버깅 하기에도 용이하다.
위의 코드를 실행하면
정수값을 입력하세요 : 705
계산과정 : digit = 1, i = 70
계산과정 : digit = 2, i = 5
계산과정 : digit = 3, i = 0
이런식으로 중간과정이 출력된다.
- 메소드를 이용하여 자리수 구하기
메소드를 이용하면 훨씬 쉽게 문제를 풀 수 있는데,
자리수를 구하는 메소드는 (int)Math.log10() + 1 이다.
문제에 적용하면
int digit = (int)Math.log10(num) + 1
요렇게 쓴다.