ABC 105 | C - Base -2 Number

5189 단어 경업자tech

문제.


https://atcoder.jp/contests/abc105/tasks/abc105_c

해법


-2진수로 표시할 수 있는 범위의 수는 다음과 같다.

N을 S로 설정i로 다음과 같이 표시한다.

그러니까 N을 -2로 나누면 0이야.

코드


#include <bits/stdc++.h>

#include <atcoder/all>

using namespace std;
using namespace atcoder;
using ll = long long;
using ld = long double;
using uint = unsigned int;
using ull = unsigned long long;
const int MOD = 1e9 + 7;

int main() {
  ll n;
  cin >> n;
  if (n == 0) {
    cout << 0 << endl;
    return 0;
  }
  string ans = "";
  while (n != 0) {
    if (n % 2 != 0) {
      n--;
      ans = "1" + ans;
    } else {
      ans = "0" + ans;
    }
    n /= -2;
  }

  cout << ans << endl;
}

참고 자료


https://atcoder.jp/contests/abc105/editorial

좋은 웹페이지 즐겨찾기