转负二进制

 1 #include <iostream>
 2 #include <algorithm>
 3 #include <cstring>
 4 #include <cstdio>
 5 #include <vector>
 6 #include <cstdlib>
 7 #include <iomanip>
 8 #include <stdio.h>
 9 #include <cmath>
10 #include <ctime>
11 #include <map>
12 #include <set>
13 #include <stack>
14 #include <queue>
15 #include <stdlib.h>
16 using namespace std;
17 #define lowbit(x) (x&(-x))
18 #define max(x,y) (x>y?x:y)
19 #define min(x,y) (x<y?x:y)
20 #define MAX 100000000000000000
21 #define MOD 1000000007
22 #define pi acos(-1.0)
23 #define ei exp(1)
24 #define PI 3.141592653589793238462
25 #define INF 0x3f3f3f3f3f
26 #define mem(a) (memset(a,0,sizeof(a)))
27 typedef long long ll;
28 ll gcd(ll a,ll b){
29     return b?gcd(b,a%b):a;
30 }
31 bool cmp(int x,int y)
32 {
33     return x>y;
34 }
35 const int N=10005;
36 const int mod=1e9+7;
37
38 int main(){
39     int n;
40     cin>>n;
41     stack<int> s;
42     if(n==0){
43         cout<<0;
44         return 0;
45     }
46     while(n){
47         if(n%-2<0){
48             s.push(n%-2+ 2);
49             n=n/-2+1;
50         }else{
51             s.push(n%-2);
52             n/=-2;
53         }
54     }
55     while(!s.empty()){
56         cout<<s.top();
57         s.pop();
58     }
59     return 0;
60 }
 1 //POJ 3191
 2 #include<stdio.h>
 3 #include<string.h>
 4 #include<algorithm>
 5 using namespace std;
 6 int ans[1000];
 7 int main()
 8 {
 9     int a;
10     while(~scanf("%d",&a)){
11         if(a==0){
12             printf("0\n");
13             continue;
14         }
15         int cont=0;
16         while(a){
17             ans[cont++]=abs(a%(-2));
18             a-=abs(a%(-2));
19             a/=(-2);
20         }
21         for(int i=cont-1;i>=0;i--)
22             printf("%d",ans[i]);
23         printf("\n");
24     }
25     return 0;
26 }
时间: 2024-10-12 08:02:11

转负二进制的相关文章

转负二进制(个人模版)

转负二进制: 1 //POJ 3191 2 #include<stdio.h> 3 #include<string.h> 4 #include<algorithm> 5 using namespace std; 6 int ans[1000]; 7 int main() 8 { 9 int a; 10 while(~scanf("%d",&a)) 11 { 12 if(a==0) 13 { 14 printf("0\n")

《N诺机试指南》(六)负二进制转化习题

先看题目: 意思:将一个十进制数进行负二进制转化,将一个十进制数进行二进制转化大家都很清楚,取余再除2向下取整,接着反序输出 负二进制转化类似:1.对-2取余,再取绝对值 2.存入结果数组里 3.将数减去余数再除-2 4.反顺序打印出来 代码: //负二进制转换 /* 道理与 十进制转二进制一样 注意:有多组输入 */ #include <stdio.h> #include <math.h> int main(){ int n; int result[105]; while(sca

Leetcode-1028 Convert to Base -2(负二进制转换)

1 class Solution 2 { 3 public: 4 string baseNeg2(int N) 5 { 6 string ss; 7 int n = N; 8 stack<int> s; 9 int a; 10 if(n == 0) 11 return "0"; 12 else 13 { 14 while(n!=0) 15 { 16 a = abs(n%(-2)); 17 s.push(a); 18 n = (n-a) / (-2); 19 } 20 } 2

关于java按位操作运算

<1>.在了解位移之前,先了解一下正数和负数的二进制表示形式以及关系:举例15和-15: 15 的原码: 00000000 00000000 00000000 00001111     补码: 11111111 11111111 11111111 11110000                 +1 = -15的原码:11111111 11111111 11111111 11110001 负数的原码即为:正数的原码取反,再加1. <2>位移操作:(只针对 int类型的数据有效,j

UVA 11121 Base -2

用负二进制表示一个数,如21=1+4+16,当num>21时最大用64-32表示32,否则最大用16即可,当num=31时,31-32=-1,在转入处理负数的函数中 1 /*0.003s*/ 2 #include <iostream> 3 #include<cstdio> 4 #include<cstring> 5 #include<cmath> 6 using namespace std; 7 8 int num,T,cas=1; 9 char an

千峰培训Day02-java基础学习:运算符、进制转换

常用命令:“F:”进入到指定盘符“cd 路径”:进入到指定路径下 javac 编译java执行 标识符:数据类型:基本数据类型.引用数据类型 今日内容: 常量:13变量:一块内容可以改变的内存,存储数据变量名:标识符变量值:内存中的数据变量想被使用,那么必须,先声明后赋值声明的格式:数据类型 变量名;赋值的格式:变量名=变量值;数据类型(声明) 变量名=变量值(赋值);例:int num = 12;格式:数据类型 变量名[=值]; 字符和字符串的区别?字符:单引号,内部只有一个字符字符串:双引号

NWU现场赛——解题报告

负二进制转换 Time Limit : 3000/1000ms (Java/Other)   Memory Limit : 65535/32768K (Java/Other) Problem Description QAQ学长对于现在大家普遍学习的C语言.Java语言等等很是不屑,他认为二进制指令才是最优美的语言;苦苦思考哲学的QAQ学长已经不满足正二进制了,他现在研究的是负二进制,他给你一串负二进制表示的编码,希望你告诉他这串负二进制表示的十进制数是多少. Input Output Sampl

[史上最全]C#(VB.NET)中位运算符工作过程剖析(译)

原文地址CodeProject 目录 介绍 “二进制-十进制”相互转换 十进制->二进制 二进制->十进制 OR运算符(按位或|) OR运算符工作方式 FlagsAttribute AND运算符(按位与&) XOR运算符(按位异或^) XOR运算符工作方式 使用XOR交换两变量值的算法 使用XOR加密 NOT运算符(按位非~) 左移运算符(<<) 左移运算符工作方式 使用左移运算符计算2的幂 右移运算符(>>) 右移运算符工作方式 使用右移运算符计算x/(2的幂

Python第六周 学习笔记(1)

文件操作 打开操作 io.open(file, mode='r', buffering=-1, encoding=None,errors=None, newline=None, closefd=True, opener=None) 返回一个文件对象(流对象)和文件描述符.打开文件失败,则返回异常 基本使用: f = open("test") print(f.read()) f.close() 使用完一定要关闭 文件访问模式分两种:文本模式和二进制模式 open的参数 file 打开或者