진수를 변환하는 알고리즘을 사용하면 간단하게 풀리는 문제들이 있습니다.
그래서 진수 변환하는 방법을 정리해보도록 하죠
1. 10진수 -> 2진수 변환
public void DecimalTobinary(int num) {
StringBuffer sb = new StringBuffer(); // 거꾸로 출력하기 위한 버퍼 생성
String answer="";
while(num>0) {
answer += num%2;
num = num/2;
}
sb.append(answer); // 버퍼에 answer 저장하고
System.out.println(sb.reverse()); // 거꾸로 출력하기
}
2. 10진수 -> 8진수 변환
public void DecimalToOctal(int num) {
StringBuffer sb = new StringBuffer();
String answer="";
while(num>0) {
answer += num%8; //8로 나눈 나머지 저장
num = num/8; // 8 나누기
}
sb.append(answer);
System.out.println(sb.reverse());
}
이제 특징이 보이나여??
10진수 -> N진수로 변환하고 싶으면 원하는 숫자를 0이 될때까지 N으로 나눈 나머지를 출력하면 된다는 것!
(단, N은 1< N < 10을 만족하는 정수)
// 2 -> 10
// 8 -> 10
// 16 -> 10 , 10 -> 16 등등 모두 정리하기
3.
'알고리즘 공부 > 코딩테스트 준비' 카테고리의 다른 글
DFS/BFS 탐색 알고리즘 (행렬 구현) (0) | 2019.06.03 |
---|---|
피보나치 수열 (0) | 2019.05.20 |
행렬의 회전 (0) | 2019.05.20 |