본문 바로가기

프로그래밍/Java

[JAVA 자바] 숫자 자릿수 구하는 코드 방법 2가지 n번째 숫자 구하기

728x90
반응형

 

자릿수 구하기

 

"자릿수"는 어떤 숫자의 n번째에 위치한 숫자를 말한다

1의 자리, 10의 자리 이런걸 말한다

 

예를들어 숫자의 가장 오른쪽에 위치한 숫자를 1번째 자수라고 하자

숫자 "54321"의 숫자에서 가장 오른쪽에 위치한 숫자는 1이다

그러면 위 숫자에서 1번째 숫자는 1이라고 하는 자리수를 가진것이다

 

자릿수를 어디부터 할지는 인터넷에서 찾아보니 사람마다 각각인 것 같다

아래에서는 가장 일반적인 방법으로

가장 오른쪽에 위치한 숫자를 1번째 자리수라고 할거다

 

프로그래밍 언어에서 숫자의 자리수를 구하는 방법에는 언어마다 차이가 있을거다

파이썬은 배열의 값을 구하는 방법으로 num[n]만 해도 바로 구해지지만

그렇지 못한 언어를 사용할때는 어떻게 해야하는가

 

아래에서는 자바 코드에서 숫자의 n번째 자릿수를 구하는 방법을 적어보려고 한다


숫자의 n번째 자리의 숫자 구하기

1. 공식으로 구하기

숫자의 가장 오른쪽 자릿수가 1번째 자리수라고 할 때

자릿수를 구하는 공식은 다음과 같다
 

 

1234567이라는 숫자에서 2번째 자릿수가 어떤 숫자인지 알고 싶으면

Number 변수에 1234567을 넣고 n에 2를 넣으면 된다

 

그러면 다음과 같은 코드로 작성할 수 있다

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        System.out.print("입력: ");
        int number = Integer.parseInt(br.readLine());

        System.out.print("자리수: ");
        int n = Integer.parseInt(br.readLine());

        int digit = getDigit(number, n);

        System.out.printf("%d의 %d번째 자리수는 %d입니다.", number, n, digit);
    }

    public static int getDigit(int number, int n) {
        return (int) ((number / Math.pow(10, n-1)) % 10);
    }
}

 

2. String으로 변환해서 구하기

int형 변수를 String으로 변환하면 인덱스 형식으로 가져올 수 있다

파이썬에서 이런 방식으로 사용하며

자바에서도 할 수 있는데 파이썬의 구현 방식이 더 간단하다

 

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        System.out.print("입력: ");
        int number = Integer.parseInt(br.readLine());

        System.out.print("자릿수: ");
        int n = Integer.parseInt(br.readLine());

        int digit = getDigit(number, n);

        System.out.printf("%d의 %d번째 자릿수는 %d입니다.", number, n, digit);
    }

    public static int getDigit(int number, int n) {
        String input = String.valueOf(number);
        int length = input.length();
        return input.charAt(length - n) - '0';
    }
}

 

파이썬에서는 그냥 number[n] 이런식으로 사용했던 것 같은데...

 

728x90
반응형