https://www.acmicpc.net/problem/2089
2089번: -2진수
-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, 110
www.acmicpc.net
#include <iostream>
#include <algorithm>
using namespace std;
int main() {
int n;
string ans;
cin >> n;
if (n == 0)
{
cout << 0;
return 0;
}
while (n != 0)
{
if (n % -2 == 0)
{
ans += "0";
n /= -2;
}
else
{
ans += "1";
n = (n - 1) / -2;
}
}
for (int i = ans.length()-1;i >= 0;i--) {
cout << ans[i];
}
return 0;
}'코딩테스트 > C++' 카테고리의 다른 글
| [백준 C++] 1463번: 1로 만들기 (0) | 2024.04.20 |
|---|---|
| [백준 C++] 17103번: 골드바흐 파티션 (1) | 2024.04.20 |
| [백준 C++] 1212번: 8진수 2진수 (1) | 2024.04.20 |
| [백준 C++] 1373번: 2진수 8진수 (0) | 2024.04.19 |
| [백준 C++] 17087번: 숨바꼭질 6 (0) | 2024.04.18 |