ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 앞뒤가 같은 10진수 만들기
    알고리즘/알고리즘 퍼즐68 2020. 5. 31. 23:46

    [문제]

    10진수, 2진수, 8진수 그 어느 것으로 표현하여도 대칭수가 되는 수 중, 10진수의 10 이상에서의 최솟값을 구해 보세요.

     

    예) 9(10진수) = 1001(2진수) = 11(8진수)

    ※ 예시는 10진수에서 10 미만이므로 대상 외

     

    [언어]

    Java(1.8)

     

    [풀이]

    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
    //10진수의 10 이상의 수(짝수의 2진수는 맨 뒷자리가 0이기 때문 대칭일 수 없음)
    int i = 11;
            
    while(true) {
        //10진수 변환
        String dec = String.valueOf(i);
        //뒤집기
        String decR = new StringBuffer(dec).reverse().toString();
                
        //8진수 변환
        String oct = Integer.toOctalString(i);
        //뒤집기
        String octR = new StringBuffer(oct).reverse().toString();
                
        //2진수 변환
        String bin = Integer.toBinaryString(i);
        //뒤집기
        String binR = new StringBuffer(bin).reverse().toString();
                
        //대칭수인지 비교
        if(dec.equals(decR) && oct.equals(octR) && bin.equals(binR)) {
            break;
        }
                
        //짝수의 2진수는 맨 뒷자리가 0이기 때문 대칭일 수 없기 때문에 홀수만 검사
        i+=2;
    }
    cs

     

    [답]

    585

    '알고리즘 > 알고리즘 퍼즐68' 카테고리의 다른 글

    카드를 뒤집어라!  (0) 2020.06.10
    수열의 사칙연산  (0) 2020.06.03
Designed by Tistory.