[C++/백준 1212번] -2진수

2024. 10. 28. 19:58·프로그래밍 공부/백준 (C++)

 

 

대략 황당했던 문제. 처음에 보고 이걸 어떻게 풀어야 하나 생각했다.

 

진법에 맞게 -2 로 나누되, 컴파일러의 양수 / 음수 , 음수 / 양수 나눗셈에 대한 이해를 요하는 문제였다. 

 

C/ C++ 컴파일러에서는  13 / -2  가 -6 이 나오고, 파이썬에서는 13 / -2 가 -7 이 나온다고 알려져 있다. 이는 컴파일러의 계산 차이에서 오는 것인데, 우리가 -2로 나눌 때 나머지가 음수가 나오면 진법에 적용을 할 수 없으므로 13 / -2 는 (-2) * ( -6)  + 1 으로 나타내야 한다.

 

예시인 -13 을 예시로 들어보자.

 

-13 / -2 -> (-2) * 7  + 1

7 / -2   ->  (-2) * (-3) + 1

-3  / -2 -> (-2) * (2) + 1

2  /-2 ->  (-2) * (-1) + 0 

-1 / -2 -> (-2) * (1) + 1

1 

 

110111 로 정답이 잘 나온다. 따라서 저장 해 줄 때 나머지가 1 이 나오는 경우는 n-1 을 -2로 나눈 것을 저장해 주면 된다.

 

#include <iostream>
#include <cmath>
using namespace std;

int main() {


    int N;

    cin >> N;

    int cnt = 0;

    if(N == 0)
    {
        cout << "0";
        return 0;
    }

    string result = "";
    while(N)
    {
        if(N % -2 == 0)
        {
            result = "0" + result;
            N = N / -2;
        }
        else
        {
            result = "1" + result;
            N = (N-1) / -2;
        }

    }

    cout << result << endl;





    return 0;
}

 

 

'프로그래밍 공부 > 백준 (C++)' 카테고리의 다른 글

[C++/백준 1463번] 1로 만들기  (0) 2024.10.30
[C++/백준 11576번] Base Conversion  (0) 2024.10.30
[C++/백준 1212번] 8진수 2진수  (0) 2024.10.27
[C++/백준 17087번] 숨바꼭질 6  (0) 2024.10.26
[C++/백준 9613번] GCD 합  (0) 2024.10.26
'프로그래밍 공부/백준 (C++)' 카테고리의 다른 글
  • [C++/백준 1463번] 1로 만들기
  • [C++/백준 11576번] Base Conversion
  • [C++/백준 1212번] 8진수 2진수
  • [C++/백준 17087번] 숨바꼭질 6
Rocketbabydolls
Rocketbabydolls
Rocketbabydolls
  • Rocketbabydolls
    With The Lights Out
    Rocketbabydolls
  • 전체
    오늘
    어제
    • 전체글 (184) N
      • 프로그래밍 공부 (117)
        • C (16)
        • Jumping into C++ (9)
        • MFC (C++) (1)
        • 자료구조 (1)
        • 알고리즘 (1)
        • 백준 (C++) (74)
        • 핸즈온 머신러닝 2판 (6)
        • Unseen 3기 준비 (4)
        • 원티드 포텐업 게임 개발자 양성과정 2기 (4)
      • 언리얼엔진5 (63) N
        • [Part1] 이득우의 언리얼 프로그래밍 (12)
        • [Part2] 이득우의 언리얼 프로그래밍 (2)
        • [Part2 복습] 이득우의 언리얼 프로그래밍 (3)
        • [Part3] 이득우의 언리얼 프로그래밍 (14)
        • [Part4] 이득우의 언리얼 프로그래밍 (0)
        • FPS 게임 1인 프로젝트 (6)
        • 각종 지식 (11) N
        • 블루프린트 Paper2D 로 게임 만들기 (14)
        • 팀 프로젝트 (1)
      • 일상 (1)
      • ETC (1)
        • 맥북 (1)
  • 블로그 메뉴

    • 링크

    • 공지사항

    • 인기 글

    • 태그

      핸즈온 머신러닝
      실전 C프로그래밍
      c언어
      실전 C 프로그래밍
      핸즈온 머신러닝 2판
      언리얼엔진5 fps 프로젝트
      티스토리챌린지
      언리얼엔진 eqs c++
      언리얼엔진 eqs generator
      실전C프로그래밍 실습문제
      오블완
      언리얼엔진 eqs 커스텀
      실전 C프로그래밍 나중채
      실전C프로그래밍 나중채
      실전 C프로그래밍 실습문제
      c++ 17298
      C언어 실습문제
      언리얼엔진5
      실전C프로그래밍
      언리얼엔진
    • 최근 댓글

    • 최근 글

    • hELLO· Designed By정상우.v4.10.3
    Rocketbabydolls
    [C++/백준 1212번] -2진수
    상단으로

    티스토리툴바