반응형
[문과 코린이의 IT 기록장] C++ 백준 문제풀이 - -2진수 (2089)
[ 문제 ]
-2진법은 부호 없는 2진수로 표현이 된다. 2진법에서는 20, 21, 22, 23이 표현 되지만 -2진법에서는 (-2)0 = 1, (-2)1 = -2, (-2)2 = 4, (-2)3 = -8을 표현한다. 10진수로 1부터 표현하자면 1, 110, 111, 100, 101, 11010, 11011, 11000, 11001 등이다.
10진법의 수를 입력 받아서 -2진수를 출력하는 프로그램을 작성하시오.
[ 입력 ]
첫 줄에 10진법으로 표현된 수 N이 주어진다.
[ 출력 ]
-2진법 수를 출력한다.
[ 코드 ]
#include<iostream>
using namespace std;
void func(int n) {
if (n ==0)
{
return; // 현재의 함수를 빠져나가라
}
if (n%2==0)
{
func(-(n / 2));
cout << 0; // 함수를 빠져나오면서 거꾸로 출력됨.
}
else
{
if (n>0)
{
func(-(n / 2));
}
else
{
func((-n + 1) / 2);
}
cout << 1; // 함수를 빠져나오면서 거꾸로 출력됨.
}
}
int main() {
int n;
cin >> n;
if (n==0)
{
cout << "0";
return 0;
}
func(n);
return 0;
}
* 유의사항 - 아직 공부하고 있는 문과생 코린이가, 정리해서 남겨놓은 정리 및 필기노트입니다. - 정확하지 않거나, 틀린 점이 있을 수 있으니, 유의해서 봐주시면 감사하겠습니다. - 혹시 잘못된 점을 발견하셨다면, 댓글로 친절하게 남겨주시면 감사하겠습니다 :) |
반응형
'문과 코린이의, [C. C++] 기록 > C++ 백준 문제풀이' 카테고리의 다른 글
[문과 코린이의 IT 기록장] C++ 백준 문제풀이[DP] - 2 x n 타일링 (11726) (0) | 2021.07.18 |
---|---|
[문과 코린이의 IT 기록장] C++ 백준 문제풀이[DP] - 1로 만들기 (1463) (0) | 2021.07.17 |
[문과 코린이의 IT 기록장] C++ 백준 문제풀이 - 8진수 2진수 (1212) (0) | 2021.07.16 |
[문과 코린이의 IT 기록장] C++ 백준 문제풀이 - 오등큰수 (17299) (0) | 2021.07.16 |
[문과 코린이의 IT 기록장] C++ 백준 문제풀이 - 2진수 8진수 (1373) (0) | 2021.07.16 |