poj 3191 The Moronic Cowmpouter
题意: 一个十进制的数,有正有负,把他化成-2进制。
#include <iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
using namespace std;
long long n,y;
int a[2100],k;
void system(long long x)
{
k=0;
while(x!=0)
{
a[k]=x%2;
if(a[k]<0)
a[k]=a[k]*(-1);
x-=a[k];
x/=-2;
k++;
}
}
int main()
{
while(scanf("%I64d",&n)!=EOF)
{
if(n==0)
{
printf("0\n");
continue;
}
memset(a,0,sizeof(a));
system(n);
for(int i=k-1; i>=0; i--)
{
printf("%d",a[i]);
}
printf("\n");
}
return 0;
}
虽然没想到但是要把它记住,应该可以的做个模板。