Algorithm
[백준] 알고리즘 2089번 - -2진수 문제
낭강
2020. 12. 21. 22:05
#include <bits/stdc++.h>
using namespace std;
int main()
{
ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
int n;
cin >> n;
if (n == 0)
{
cout << "0\n";
return 0;
}
string result;
while (n != 0)
{
if (n % -2 == 0)
{
result += "0";
n /= -2;
}
else
{
result += "1";
n = (n - 1) / -2;
}
}
reverse(result.begin(), result.end());
cout << result << '\n';
return 0;
}
- 나머지=0 인경우
n이 음수, 양수 상관없이 나머지가 0이 될때는 0을 그대로 출력해주면 된다.
- 나머지가 0이 아닌경우
이경우는 n이 음수인지 양수인지에 따라 c++인 경우 해석의 차이가 있다고 한다.
그러므로 정확하게 내림연산을 해줘야 정확한 값이 구해진다.