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
반응형
'프로그래밍 > Java' 카테고리의 다른 글
자바 양방향 그래프 dfs - 2차원 행렬, 반복문, 스택, LinkedHashSet (0) | 2023.03.21 |
---|---|
윤년 구하는 함수 (0) | 2023.03.03 |
자바 TCP/IP 소켓 통신 서버, 클라이언트 만들기 코드 (0) | 2023.03.01 |
[자바 JAVA] Server Socket 소켓 통신 한글 깨짐 해결 BufferedReader, InputStreamReader, PrintWriter, OutputStreamWriter.... JDK한글깨짐, 자바한글깨짐 (0) | 2023.02.28 |
연결리스트를 이용한 다항식을 계산하고 사용자가 입력한 문자열을 파싱하는 Polynominal 코드 만들기 (0) | 2022.11.29 |