Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 백준 2501번
- 백준 1269번
- 백준 27433번
- 5073번
- 백준 2587번
- 알고리즘
- 백준 2525번
- Unity
- 논리 연산
- C
- 일상생활 영어표현
- C++
- javascript
- 백준 5086번
- 피라미드 출력
- 대칭 차집합
- html
- 잡다한 일
- 연속된 숫자의 합
- 해석
- 백준 1157번
- 백준 25305번
- 백준 5597번
- 상세 풀이
- Java
- 배열
- 백준 #11382번 #
- 직각 삼각형
- 백준 9506번
- 차이
Archives
- Today
- Total
YunDev
[자료구조와 알고리즘] 기수 변환 본문
정숫값을 임의의 기수로 변환하는 알고리즘입니다. 10진수 정수를 n진수 정수로 변환하려면 정수를 n으로 나눈 나머지를 구하는 동시에 나눈 몫에 대해 0이 될 때 까지 반복해야합니다. 이 과정으로 구한 나머지를 거꾸로 늘어놓은 숫자가 기수로 변환한 숫자입니다.
package org.example;
import java.util.Scanner;
public class RadixConversion {
static int conversion(int x, int r, char[] d) {
int digit = 0;
String dchar = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
do{
d[digit++] = dchar.charAt(x%r); //나머지를 문자열로 저장
x/=r; //몫만 구함
} while(x != 0);
return digit;
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n; //정수
int cd; //진수
int dno; //변환 후 자릿수
char[] cno = new char[32];
do {
System.out.print("변환하고자 하는 음이 아닌 정수: ");
n = sc.nextInt();
} while(n <= 0);
do {
System.out.print("변환할 진수 : ");
cd = sc.nextInt();
} while(cd < 2 || cd > 36);
dno = conversion(n, cd, cno);
System.out.print(cd+"진수로 변환하면 ");
for (int i = dno-1; i >= 0; i--) {
System.out.print(cno[i]);
}
}
}
나머지를 구했을 때 그 나머지를 배열에 저장하고 출력할 때는 역순으로 출력해야합니다.
'자료구조와 알고리즘' 카테고리의 다른 글
[자료구조와 알고리즘] 소수 구하기 (0) | 2025.01.21 |
---|---|
[자료구조와 알고리즘] 배열, 최댓값 (0) | 2025.01.15 |
[자료구조와 알고리즘] 다중 루프 (0) | 2025.01.13 |
구조적 프로그래밍, 드모르간 (0) | 2025.01.11 |
1. 알고리즘이란?, 연속된 숫자의 합 (0) | 2025.01.08 |