Uva 11121 Base -2
题意:把一个十进制数转换成-2进制数,并且(-2)进制数的值只有01两种情况
思路:因为只有01两种情况,本来应该有-1 1 0 三种的,所以必须把-1换成1,怎么换就得推了
举个例子,第0次:100/2==50,100%2==0,把50++=51,逆回去就是102,相当于增加了2即2^1
第1次:50/2==25 ,50%2==0 ,把25++=26,逆回去就是104,相当于增加了4即2^2
所以第i次迭代后,商+1相当于原来的数增加了2^(i+1),这个非常有用,题目中:
n=b0+b1(-2)+b2(-2)^2+b3(-2)^3+..........
当n为正数时,第i次迭代的余数为-1时,那么i一定是奇数(n为正数时,余数之和n的符号有关,是交替变化的)
那么结果为(-1)*(-2)^i=2^i
若为1则1*(-2)^i=-2*i 相差2*2^i=2^(i+1)!!!
代码:
#include <iostream>
#include <stdio.h>
#include <cmath>
#include <cstring>
#include <vector>
#include <map>
#include <algorithm>
using namespace std;
const int M=10010;
int n;
int a[110];
void solve(int g)
{memset(a,0,sizeof(a));int i=0;while(n!=0){a[i]=n%(-2);n/=(-2);if(a[i]==-1){a[i]=1;n++;}i++;}int j=i;while(j && a[j]==0)j--;printf("Case #%d: ",g);for(; j>=0; j--){printf("%d",a[j]);}printf("\n");
}
int main()
{int t,g=0;scanf("%d",&t);while(t--){g++;scanf("%d",&n);solve(g);}return 0;
}
Uva 11121 Base -2相关推荐
- UVa 11121 - Base -2 负进制的转化和推广
http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&p ...
- UVa 11121 - Base -2
题目:计算以-2为基数的数的表示. 分析:数论.写出不同位数能表示的数字区间就可以找到规律. 长度为1:[1,1]: 长度为2:[-2,-1]: 长度为3:[2,5]: 观察发现,区间长度增长为1,2 ...
- UVa 11121 Base -2(负数进制)
题意: 给定一个大于等于0的整数n,求n的-2进制数. 思路: 1. 对于2进制的,大家都是熟悉的: a[i] = n % 2; n = n/2; 2. 是否发现上面少了一个地方呢?n = n/2是否 ...
- UVA - 11121 Base -2
题目大意:给出一个十进制的数,将这个数转换成-2进制的数. 解题思路:进制转化是一种很简单的题型,可是对于负数的进制来说我就很陌生了,研究了蛮久的,这里分享一下. 首先要了解如何将一个-2进制的数转换 ...
- uvaoj 11121 Base -2 整数转成负数进制
uvaoj 11121 Base -2 整数转成负数进制 给定一个十进制的数,将其转成-2进制的数.也就是n=b0+b1*(-2)+b2*(-2)^2+b3*(-2)^3....其中bi为0或1. 算 ...
- uva 11121【base -2】
uva上面的题目就是不一样啊... 表扬一下"经典"... 代码如下: 1 #include <cstdio> 2 #include <cstring> 3 ...
- 11121 - Base -2
描述:除-2取余,余数为负的时,余数要减去-2,商要加一 #include <cstdio> #include <cmath> int main() {//freopen(&q ...
- 11121 Base -2
题目大意:输入一个十进制数,将该数转化为-2进制 首先用例子确定一下思路 输入7 7 / -2 = <-3.5> -3余1 -3/ -2 = <1.5> 2余1 2 / ...
- uva 11121(-2进制)
报告参考:http://www.cnblogs.com/scau20110726/archive/2012/12/21/2828420.html 代码如下: 1 /****************** ...
最新文章
- linux下几种运行后台任务的方法
- eclipse 查找
- leetCode 28. Implement strStr() 字符串
- java 面试指南_Java面试参考指南–第1部分
- httpHandlers和httpModules接口介绍 (5)
- WebBrowser,挖坑,跳坑,填坑
- 如何破解几乎所有的求职面试
- mac obs 录屏黑屏_差点被录屏软件搞死.......
- PDF文件限制密码如何解除
- Matlab中grid 的使用
- ubuntu报错:RuntimeError : unexcepted EOF, excepted 2599001 more bytes. The file might be corrupted.
- 如何使用 IFTTT 零成本建立网站内容监控系统?
- 鲁豫有约--之分享李连杰的私密生活
- nu.xom:Element
- python中元组常识,以及for 与 range 的用法!
- JWT 生成Token、解析Token的简单工具类
- DialogBox使用例子
- 【IoT】产品设计:硬件产品外观样品设计工艺及要求(手板)
- 网络传输协议原理透析
- 三相永磁同步电机Foc有感的程序控制(总结:程序2)
热门文章
- Github 首页制作
- 老友逢共话区块链落地,杭州首个区块链周首日精彩瞬间
- python字符串去掉空行_Python从字符串中删除空格
- MIT6.830-lab5-B+ Tree Index(数据库的索引B+树的搜索、插入、删除窃取、删除合并)
- 工资要达到多少,才能向银行贷款20万?
- 实现酒店计算机管理的模型,酒店管理系统设计.doc
- java 获取当前时间的毫秒数
- 通信协议整理之 IIC 通信
- zynq配置成jtag模式_Zynq-7000 MiZ701 SOC硬件使用手册
- JBoss Marshalling编解码