만들 프로그램
양의 정수를 입력받고, 입력받은 수의 자릿수를 출력
내가 작성한 코드
- 메서드명 : getCount
- 입력받는 값은 양의 정수(a)
- 출력하는 값은 숫자 개수
처음엔 10 미만일 경우 1자리, 100 미만일 경우 2자리...로 생각하였으나,
무한한 자릿수를 나타낼 수 없어 문자열로 변환하고 글자수를 세는 방법을 생각하게 됨
public class Problem3 {
static int getCount(int a) {
String result = "" + a;
return result.length();
}
public static void main(String[] args) {
System.out.println("자릿수: "+getCount(3));
System.out.println("자릿수: "+getCount(23));
System.out.println("자릿수: "+getCount(2352));
System.out.println("자릿수: "+getCount(462643));
}
}
>> 출력:
자릿수: 1
자릿수: 2
자릿수: 4
자릿수: 6
모범 답안
1. 입력값을 몫이 0이 될때까지 10으로 나누고, 나눈 총횟수를 자릿수로서 리턴
public class Problem3_A {
static int getDigitCount(int n) {
int count = 1;
while (true) {
if (n == 0) {
break;
}
n /= 10; → 숫자 n을 10으로 나누고 그 값을 다시 숫자 n에 대입
count++;
}
return count;
}
public static void main(String[] args) {
System.out.println("자릿수: "+getDigitCount(3));
System.out.println("자릿수: "+getDigitCount(23));
System.out.println("자릿수: "+getDigitCount(2352));
System.out.println("자릿수: "+getDigitCount(462643));
}
}
>> 출력:
자릿수: 1
자릿수: 2
자릿수: 4
자릿수: 6
2. 10으로 나눴을 때 몫이 0이 될때까지 계속 나누고, 나눈 총횟수를 자릿수로서 리턴
public class Problem3_A {
static int getDigitCount(int n) {
String result = "" + n; → 정수를 문자열로 변환
return s.length(); → 문자열의 글자 수를 리턴
}
public static void main(String[] args) {
System.out.println("자릿수: "+getCount(3));
System.out.println("자릿수: "+getCount(23));
System.out.println("자릿수: "+getCount(2352));
System.out.println("자릿수: "+getCount(462643));
}
}
>> 출력:
자릿수: 1
자릿수: 2
자릿수: 4
자릿수: 6