The Moronic Cowmpouter(负进位制转换)

http://poj.org/problem?id=3191

题意:将一个整型的十进制整数转化为-2进制整数。

 1 #include <stdio.h>
 2 #include <algorithm>
 3 #include <stdlib.h>
 4 #include <string.h>
 5 #define LL long long
 6 using namespace std;
 7 int main()
 8 {
 9     LL n,s[1010];
10     while(~scanf("%lld",&n))
11     {
12         memset(s,0,sizeof(s));
13         if (n==0)
14         {
15             puts("0");
16             continue;
17         }
18         int flag = 0,i = 0;
19         while(n)
20         {
21             s[i] = n%2;
22             //printf("%lld
",s[i]);
23             if (n < 0)
24                 s[i] = -s[i];
25             n-=s[i];
26             n/=-2;
27             i++;
28         }
29         flag = i;
30         reverse(s,s+i);
31         for (i = 0; i < flag; i++)
32         {
33             printf("%lld",s[i]);
34         }
35         puts("");
36     }
37     return 0;
38 }
View Code
原文地址:https://www.cnblogs.com/lahblogs/p/3442317.html