티스토리 뷰

PS/etc

chapter2) 10진수 변환

kingsubin 2020. 7. 8. 19:54
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