chapter2) 10진수 변환
2020. 7. 8. 19:54ㆍPS/etc
public class Q6 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int no; // 변환하는 정수
int cd; // 기수
int dno; // 변환 뒤의 자릿수
int retry; // 한 번 더 ?
char[] cno = new char[32];
System.out.println("10진수를 기수 변환 합니다.");
do {
do {
System.out.println("변환하는 음이 아닌 정수 : ");
no = scanner.nextInt();
} while (no < 0);
do {
System.out.println("어떤 진수로 변환 할까요? (2~36) : ");
cd = scanner.nextInt();
} while (cd < 2 || cd > 36);
dno = cardConv(no, cd, cno);
System.out.println("dno : " + dno);
System.out.println(cd + "진수는 ");
for (int i = 0; i < dno; i++) {
System.out.print(cno[i]);
}
System.out.println("입니다.");
System.out.print("한번 더 할까요? (1.예 / 0.아니요) : ");
retry = scanner.nextInt();
} while (retry == 1);
}
static int cardConv(int x, int r, char[] d) {
int digits = 0;
String dchar = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
do {
d[digits++] = dchar.charAt(x % r);
x /= r;
} while (x != 0);
for (int i = 0; i < digits / 2; i++) {
char temp = d[i];
d[i] = d[digits - i -1];
d[digits - i - 1] = temp;
}
return digits;
}
}
- 문제 말을 이해를 잘 못하겠어서 답안봄
- 이상하게 생각해서 못풀었음
- 다시 작성 할 수 있을지 모르겠음
- 한 번 더 생각해봐야할듯
- 저번에 써먹은 배열 반대정렬하는거 사용
- 자릿수로 배열 출력하는 횟수 지정
※참조
Do it! 자료구조와 함께 배우는 알고리즘 입문
'PS > etc' 카테고리의 다른 글
chapter2) 그 해의 경과 일 수 구하기 (0) | 2020.07.09 |
---|---|
chapter2) 소수 구하기 (0) | 2020.07.09 |
chapter2) 배열 요소의 합계 구하기 (0) | 2020.07.07 |
chapter2) 배열 역순 정렬 (0) | 2020.07.07 |
chapter1) 숫자 피라미드 찍기 (0) | 2020.07.07 |