왕초보 튜토리얼 ENDIANS 문제 질문 드립니다.

  • Tempo
    Tempo

    왕초보 튜토리얼 https://algospot.com/judge/problem/read/ENDIANS
    문제 질문 드립니다.
    지금 엔디안 문제를 공용체를 이용해서 엄청 간단하게 해결하고 정답이 돼서 제출은 한 상태 입니다. 그런데 제가 이 문제를 풀려고 12시간정도 고민해봤는데 공용체를 생각하기 전에 이런 방법으로 할 수 있을 거 같았는데 여기서 막혔습니다.

    먼저, 입력받은 정수를 2진수로 변환해서 2진수의 순서를 엔디안 표기법에 맞게 변환해서 다시 정수로 만드는 방법으로 되지 않을까 했는데 2진수로 변환해서 배열에 집어 넣었는데 배열에서 숫자를 가져와서 저것의 순서를 변환하는 방법을 모르겠습니다.

    ~~~ c 언어 windows 로 코딩 후 답안 제출할때 맞게 바꾸고 있습니다.

    void main() {
    int C = 0; // 입력 받을 개수
    unsigned int num = 0; // 입력 받을 수

    int temp_mok = 0; //정수를 2진수로 변환하기 위한 몫
    int temp_reminder = 0; //정수를 2진수로 변환하기 위한 나머지
    int array_two[100] = {}; //변환한 2진수의 값을 저장하기 위한 배열
    int j = 0; //저장된 2진수의 값을 순서대로 출력하기 위한 변수
    scanf_s("%d", &C, sizeof(int)); // 개수 입력
    
    
    for (int i = 0; i < C; i++) {
        scanf_s("%d", &num, sizeof(unsigned int));
        temp_mok = num;
    
        //이진수로 변환
        while (temp_mok != 0) {
            temp_reminder = temp_mok % 2;
            temp_mok = temp_mok / 2;
            array_two[j] = temp_reminder;
            j++;
        }
        //이진수로 출력
        for (int i = j - 1; j >= 0; j--) {
            printf("%d", array_two[j]);
    
        }
        printf("\n");
        j = 0;
    }

    }


    8년 전
0개의 댓글이 있습니다.
  • 정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.