자리수 구하기

MIN.DI·2021년 4월 24일

TIL

목록 보기
1/15

문제 : 입력받은 정수값의 자리수 구하기

  1. 양의 정수값만 입력받기
  2. 입력받은 값의 자리수 구하기

**함수를 이용하여 자리수 구하기

  1. 양의 정수값만 입력받기
	do {
		System.out.print("정수값을 입력하세요 : ");
		i = stdIn.nextInt();
	}while (num <= 0);
  1. 자리수 구하기
int digit = 0; 

	while (num > 0) {
		digit++;		
		num /= 10;
        	//System.out.printf("계산과정 : digit = %d, i = %d \n", digit, i);
	}

int digitnum을 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

요렇게 쓴다.

profile
내가 보려고 쓰는 블로그

0개의 댓글