标签:
Description
Input
Output
Sample Input
-13
Sample Output
110111
Hint
1*1 + 1*-2 + 1*4 + 0*-8 +1*16 + 1*-32 = -13
注:任意的负进制也是如此做法
#include<cstdio> #include<stack> #include<cstring> #include<algorithm> using namespace std; typedef long long ll; ll read()//输入外挂 { ll x=0,f=1;char ch=getchar(); while(ch<‘0‘||ch>‘9‘){if(ch==‘-‘)f=-1;ch=getchar();} while(ch>=‘0‘&&ch<=‘9‘){x=x*10+ch-‘0‘;ch=getchar();} return x*f; } int main() { int n,i; n=read(); stack<int>s; if(!n) {printf("0\n");return 0;}//0 需要特判 while(n) { for(i=0;;++i) if((n-i)%2==0) break; s.push(i); n=(n-i)/(-2); } while(!s.empty()){ printf("%d",s.top()); s.pop();} printf("\n"); }
标签:
原文地址:http://www.cnblogs.com/orchidzjl/p/4393704.html