SYCOJ1717负二进制
进制的实质在于对于进制数的选择,选择不满足的填入当前的位置,然后除掉,继续开始选择。但是对于本题,是负数,但是进制上的数字为正数,所以就要调整,借位,因为符号不同,所以借位就是增加,进位就是减去。还有循环进位
#include<bits/stdc++.h>
using namespace std;
const int N=1e6+520;
int n,k=0;
int ans[N];
int main()
{
scanf("%d",&n);
if(n==0)
{
cout<<0;
return 0;
}
while(n)
{
ans[++k]=n%-2;
n/=-2;
}
for(int i=1;i<=k;i++)
{
if(ans[i]<0) ans[i+1]+=((ans[i]%-2+-2)/-2),ans[i]=abs((ans[i]%-2+-2)%-2);
if(ans[i]>=2) ans[i+1]+=(ans[i]/-2),ans[i]%=-2;
}
if(ans[k+1]<2&&ans[k+1]>=0) k++;
while(ans[k+1]>=2||ans[k+1]<0)
{
if(ans[k+1]<0) ans[k+2]+=((ans[k+1]%-2+-2)/-2),ans[k+1]=abs((ans[k+1]%-2+-2)%-2),k++;
if(ans[k+1]>=2) ans[k+2]+=(ans[k+1]/-2),ans[k+1]%=-2,k++;
}
if(ans[k+1]<2&&ans[k+1]>=0) k++;
while(!ans[k]) k--;
for(int i=k;i>=1;i--) cout<<ans[i];
puts("");
return 0;
}
SYCOJ1717负二进制的更多相关文章
- [Swift]LeetCode1017. 负二进制转换 | Convert to Base -2
Given a number N, return a string consisting of "0"s and "1"s that represents it ...
- [史上最全]C#(VB.NET)中位运算符工作过程剖析(译)
原文地址CodeProject 目录 介绍 “二进制-十进制”相互转换 十进制->二进制 二进制->十进制 OR运算符(按位或|) OR运算符工作方式 FlagsAttribute AND ...
- 关于java按位操作运算
<1>.在了解位移之前,先了解一下正数和负数的二进制表示形式以及关系:举例15和-15:15 的原码: 00000000 00000000 00000000 00001111 补码 ...
- [USACO精选] 第一章 数值计算
好不容易坑来了传说中的USACO精选,近100题我要是能做完就哈哈哈哈了…继今天学并查集连番受挫之后,决定写一写基础题. #0 负二进制 2014-01-10 其实是想到就会做,不想到就不会做的题,数 ...
- 标准C编程-笔记全集
C语言的基本概念 编写一个简单的C程序,后缀名保存为c(本次文件名为a.c) gcc:对c程序进行编译和连接:gcc a.c ./a.out:运行程序,输出程序的结果:其中a是c程序的文件名 说明:其 ...
- Swift LeetCode 目录 | Catalog
请点击页面左上角 -> Fork me on Github 或直接访问本项目Github地址:LeetCode Solution by Swift 说明:题目中含有$符号则为付费题目. 如 ...
- 5E - A + B Again
There must be many A + B problems in our HDOJ , now a new one is coming. Give you two hexadecimal in ...
- 16 - 文件操作-StringIO-BytesIO
目录 1 文件操作 1.1 open函数介绍 1.2 打开操作 1.2.1 mode模式 1.2.2 文件指针 1.2.3 缓冲区 1.2.4 encoding编码 1.2.5 其他参数 1.3 读写 ...
- java 基础 01 变量和注释、数据类型
1,变量和注释 比如:姓名:xiaoming 年龄:18 1.1变量的基本概念 当需要在程序中记录单个数据内容时,则需要声明一个变量来处理,而变量的本质就是内存中申请一块存储单元用于存储数据内容,由于 ...
随机推荐
- 第44篇-为native方法设置解释执行入口
对于Java中的native方法来说,实际上调用的是C/C++实现的本地函数,由于可能会在Java解释执行过程中调用native方法,或在本地函数的实现过程中调用Java方法,所以当两者相互调用时,必 ...
- 象群游牧算法-Matlab
1. 适应度函数: function z=chaffer(x)%chaffer函数x=(0...0) f(x)=0 x[-10,10]%%没测 n=10; s1=0; for i=1:n s1=s1+ ...
- LuoguB2030 计算线段长度 题解
Content 已知线段的两个端点的坐标 \(A(X_a,Y_a),B(X_b,Y_b)\) ,求线段 \(AB\) 的长度. 数据范围:\(|X_a|,|Y_a|,|X_b|,|Y_b|\leqsl ...
- JENKINS中创建全局变量并在JOB中使用
配置了一个 "PASSWORD"的变量值 然后再脚本里面使用 注意这里必须要用双引号 不然不行
- c++基础之operator =处理
1.注意自我赋值 先看个例子: class A {}; A a ; a = a; // 注意这句 可能实际中,你不会这样做,但是实际中,是有可能的,并且这样做,也不违背语法. BUT, 如果上面的例子 ...
- 【LeetCode】266. Palindrome Permutation 解题报告(C++)
作者: 负雪明烛 id: fuxuemingzhu 个人博客:http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 字典 日期 题目地址:https://leetcode ...
- 【LeetCode】865. Smallest Subtree with all the Deepest Nodes 解题报告(Python & C++)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 日期 题目地址:https://leetcode.c ...
- 【LeetCode】867. Transpose Matrix 解题报告(Python)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 先构建数组再遍历实现翻转 日期 题目地址:https ...
- 1307 - Counting Triangles
1307 - Counting Triangles PDF (English) Statistics Forum Time Limit: 2 second(s) Memory Limit: 32 ...
- 1161 - Extreme GCD
1161 - Extreme GCD PDF (English) Statistics Forum Time Limit: 1 second(s) Memory Limit: 32 MB All ...