반응형
10~1000까지 각 숫자 분해하여 곱하기의 전체 합 구하시오
예) 48는 4와 8로 나뉘고 48 -> 4×8 = 32 와 같은 방법으로 계산한다.
이 문제에서 가장 중요한 포인트는 각 숫자를 분해하는 것으로 보인다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
public static void main(String[] args) {
int[] list = new int[1000]; // 1000개의 array 생성
int sum = 0;
int multi = 1;
for(int x = 10; x < list.length+1; x++){
char[] c = (""+x).toCharArray();
//10부터 1000까지 숫자를 ""+x 형식으로 char로 형변환해 배열에 저장
for(int i=0;i<c.length; i++) {
multi = multi * Character.getNumericValue(c[i]);
}
sum += multi;
multi = 1; //1로 재정의하지 않을 시 계산 값은 0이 나온다
}
System.out.println("정답 :" + sum);
}
|
cs |
숫자를 문장열로 문자열을 char형으로 변환하는 과정이 담겨있다.
다음을 실행한 답은 아래와 같다.
알게된 것들
toCharArray(); : 문자열을 char형으로 분해하여 배열에 저장한다. 위에서 사용한 방법은 10부터 시작하는
x값을 ( " "+x ) 형태의 문자열로 변환하고 toCharArray()로 분해해서 저장한다.
getNumericValue(); : 숫자형태의 유니코드, 앞에서 char형으로 변환한 숫자(문자형)을 정수형 숫자로 변화하는 메서드.
반응형
'코딩공부 > JAVA' 카테고리의 다른 글
JAVA #8 : 문자열 압축하기, toCharArray 사용하기 (0) | 2022.05.26 |
---|---|
JAVA #7 : 완전수 구하기, For문을 이용해서 완전수 구하기 (1) | 2022.05.25 |
JAVA #5_2 : 구글 입사 문제; 1~10000 사이에 8의 개수를 구하시오 (0) | 2022.05.20 |
JAVA #5_1 : 구글 입사 문제; 1~10000 사이에 8의 개수를 구하시오 (0) | 2022.05.19 |
JAVA #4 : While문과 Math.random()을 이용한 UP&DOWN 게임 제작 (0) | 2022.05.18 |