====== # 자리수 구하기 # ======
int digit = 0;
for (int n : arr) {
int len = String.valueOf(n).length();
if(len > digit) {
digit = len;
n이 1410 일때
len은 = "1410" 의 길이 # 4가 된다.
if(len > digit)는 배열 중에 가장 큰 자리수를 구하려는 조건문 이다.
{ digit 가 0 인 상태에서 len과 크기를 비교하면 digit는 처음 들어오는 숫자로 초기화 된다.
그 다음 부터는 가장 큰 자리수를 가진 n의 len이 digit가 되게 된다.
}
===== # 정수의 각 자리수에 있는 수 뽑아내기 # =====
/*
753 일때
i = 0 일때는 3 뽑아야함
i = 1 일때는 5 뽑아야함
i = 2 일때는 7 뽑아야함
753 / 1 % 10 ==> 3
753 / 10 % 10 ==> 5
753 / 100 % 10 ==> 7
target / 10^i %10
*/
결국 식은 target / 10의 i 제곱( i=0 부터 ++) % 10
target에 10의 i제곱을 나누고 10으로 나눈 몫이 해당 수의 자리수 이다.
i가 0 이면 1의자리
i가 1이면 10의 자리..
이런 식으로
JAVA에서는 ** 을 지원하지 않아서 Math.pow를 사용
Math.pow는 return 타입이 double 이므로 int로 다운캐스팅을 해줘야 함.
pow(10의 i 제곱)
int n = arr[j] / (int)Math.pow(10,i) % 10; // n은 ex) 753의 1의 자리수인 3 or 10의 자리수인 5 ..
'메모' 카테고리의 다른 글
public void addAll(매개변수가 n개 일때) int ... number (0) | 2022.06.26 |
---|---|
System.out.printf("%d" , n); 출력문 정렬 (0) | 2022.06.25 |
inner break; 로 outer loop 종료 시키기 :apple (0) | 2022.06.23 |
정보처리기사 기출문제 사이트 (0) | 2022.06.13 |
정수 띄어쓰기 없이 한 줄에 입력 받기 (str->charAt) (0) | 2022.06.13 |