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

2023. 3. 1. 23:07·이전 게시글/공부 관련

 

자릿수 구하기

 

"자릿수"는 어떤 숫자의 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] 이런식으로 사용했던 것 같은데...

 

저작자표시 (새창열림)

'이전 게시글 > 공부 관련' 카테고리의 다른 글

[백준 1094번 문제, JAVA] 막대기  (1) 2023.03.03
[백준 1026번 문제, JAVA] 보물  (0) 2023.03.02
자바 TCP/IP 소켓 통신 서버, 클라이언트 만들기 코드  (0) 2023.03.01
[백준 1027번 문제, JAVA] 고층 건물  (0) 2023.02.28
[자바 JAVA] Server Socket 소켓 통신 한글 깨짐 해결 BufferedReader, InputStreamReader, PrintWriter, OutputStreamWriter.... JDK한글깨짐, 자바한글깨짐  (0) 2023.02.28
'이전 게시글/공부 관련' 카테고리의 다른 글
  • [백준 1094번 문제, JAVA] 막대기
  • [백준 1026번 문제, JAVA] 보물
  • 자바 TCP/IP 소켓 통신 서버, 클라이언트 만들기 코드
  • [백준 1027번 문제, JAVA] 고층 건물
aptenia
aptenia
공부하면서 배운 것들
  • aptenia
    새벽의 아이디어
    aptenia
  • 전체
    오늘
    어제
    • 분류 전체보기 (276)
      • f1tenth (2)
      • 이전 게시글 (268)
        • 개발 관련 (25)
        • 정보 관련 (19)
        • 공부 관련 (224)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • 네이버 블로그
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    C언어강좌
    파이썬
    마인크래프트강화스크립트
    이것이자바다확인문제
    스크롤바CSS
    마크스크립트
    c언어초보
    공개SW개발자대회
    콜라츠추측
    티스토리스킨편집
    이것이자바다
    반복하지않는수
    일본규슈공업대학교
    C++강좌
    캡스톤디자인
    컨텍스트스위칭
    프로그래머스
    안드로이드
    파이어베이스
    백준
    티스토리반응형2스킨편집
    마크
    이것이자바다연습문제
    빅데이터공모전
    마인크래프트스크립트
    자바
    마인크래프트
    프로그래머스PCCE
    티스토리HTML
    C언어
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
aptenia
[JAVA 자바] 숫자 자릿수 구하는 코드 방법 2가지 n번째 숫자 구하기
상단으로

티스토리툴바