对于十进制整数N,试求其-2进制表示。 例如,因为 1*1 + 1*-2 + 1*4 + 0*-8 +1*16 + 1*-32 = -13 ,所以(-13)_10 = (110111)_-2。
输入一个整数,代表要转换的十进制数。
输出一个整数,代表N的-2进制表示。
|N| < = 2000000000
样例输入
-13
样例输出
110111
#include <iostream>
#include <algorithm>
#include <cstring>
#include <cstdio>
#include <vector>
#include <cstdlib>
#include <iomanip>
#include <stdio.h>
#include <cmath>
#include <ctime>
#include <map>
#include <set>
#include <stack>
#include <queue>
#include <stdlib.h>
using namespace std;
#define lowbit(x) (x&(-x))
#define max(x,y) (x>y?x:y)
#define min(x,y) (x<y?x:y)
#define MAX 100000000000000000
#define MOD 1000000007
#define pi acos(-1.0)
#define ei exp(1)
#define PI 3.141592653589793238462
#define INF 0x3f3f3f3f3f
#define mem(a) (memset(a,0,sizeof(a)))
typedef long long ll;
ll gcd(ll a,ll b){
return b?gcd(b,a%b):a;
}
bool cmp(int x,int y)
{
return x>y;
}
const int N=;
const int mod=1e9+; int main(){
int n;
cin>>n;
stack<int> s;
if(n==){
cout<<;
return ;
}
while(n){
if(n%-<){
s.push(n%-+ );
n=n/-+;
}else{
s.push(n%-);
n/=-;
}
}
while(!s.empty()){
cout<<s.top();
s.pop();
}
return ;
}