51Nod_1925 进制转换【进制+枚举】
51Nod_1925 进制转换
http://www.51nod.com/Challenge/Problem.html#!#problemId=1925
题目
有一个变进制系统从低位到高位的权值依次是 1,3,7,15,31,... 。即第i(i>=0)位的权值是 2i+1−1 。每一位数字是0,1,或者2。现在有一个十进制的数字n,想要把它转换成变进制系统下面的表示。由于有2的存在,这种转换可能会有多种可能,现在规定2只能作为最低非0位出现,这种情况下,表示就唯一了。比如44可能用15+15+7+7(2200)来表示,但是这样前面那个2就没有作为最低非0位出现,所以不符合要求,正确的转换是10120。
输入
多组测试数据。第一行有一个整数T(1<=T<=5),表示测试数据的数目。接下来T行,每行一个整数n(0<=n<=1000000000)。
输出
对于每一个n,输出它的变进制表示。
样例输入
4
1
2
3
4
样例输出
1
2
10
11
分析
枚举2出现的位置,然后从高位往低位计算该位为0还是为1,具体看程序。
C++程序
#include<iostream>
#include<cstring>using namespace std;int main()
{int a[31]={0},res[31];//计算各位的权重 int sum=1,n,t;for(int i=1;i<=30;i++){sum*=2;a[i]=sum-1;}scanf("%d",&t);while(t--){scanf("%d",&n);//寻找权值小于等于n的最高位 int k=30;while(k>=0&&n<a[k])k--;if(k==0){printf("0\n");continue; }//枚举2的位置,i=0时表示没有2 for(int i=0;i<=k;i++){memset(res,0,sizeof(res));int temp=n;res[i]=2;temp-=2*a[i];for(int j=k;j>i;j--)if(a[j]<=temp){res[j]=1;temp-=a[j];}//找到答案 if(temp==0){for(int j=k;j>0;j--)printf("%d",res[j]);printf("\n");break; }}}return 0;
}
51Nod_1925 进制转换【进制+枚举】相关推荐
- c语言ae16进制转换,进制转换工具下载_16进制2进制转换with曼彻斯特编码 1.3 免费版_极速下载站_软件下载...
16进制2进制转换with曼彻斯特编码是一款简单易用的转换工具,可以对16进制.2进制.曼彻斯特算法.10进制等进行互转,支持802.3曼彻斯特.标准曼彻斯特.差分三种转换模式,支持曼彻斯特编码每8位 ...
- HTML5进制转换,进制转换
我们知道十进制转换成二进制用短除法,但是为什么用短除法呢?请往下看. "数制"只是一套符号系统来表示指称"量"的多少.我们用"1"这个符号来 ...
- 计算机中的进制 进制转换 位运算符号
进制 计算机内部是由 IC(intergrated Ciruit)这种电子部件构成, CPU 和内存也是 IC 的一种,IC的所有引脚只有直流电压 0V 或 5V两个状态,也就是说 IC 的一个引脚只 ...
- 软考笔记——1.1、计算机硬件组成、数据的进制转换、校验码
一.计算机硬件组成 计算机的硬件基本系统由五部分组成:运算器.控制器.存储器.输入设备(如鼠标键盘).输出设备(如显示器) 存储器分为内部存储器(即内存.容量小,速度快,临时存放数据)和外部存储器(即 ...
- 计算机存储和进制转换
计算机的存储单位 计算机只能识别二进制数据,也就是0和1(0和1实际上对应的是高低电平,或者磁极方向等),对应0和1的最小存储单位是bit,bit是数据传输的最小单位.人们又规定特定位数的0和1组 ...
- 计算机系统介绍及进制转换
一.计算机系统介绍: 计算系统通常包括硬件和软件两个方面: 硬件:计算机硬件是计算系统的物理组成部分,包括CPU.内存.硬盘.显卡.主板.电源等,其中CPU是计算机的核心部件,负责执行指令和控制计算机 ...
- 计算机进制转进制,计算机中进制及进制转换
<计算机中进制及进制转换>由会员分享,可在线阅读,更多相关<计算机中进制及进制转换(55页珍藏版)>请在人人文库网上搜索. 1.计算机中进制及进制转换 计算机中进制及进制转换 ...
- 计算机网络之基本计量单位和进制转换
计算机网络之存储单位 计算机及计算机网络中传输.存储.运算基本计量单位 基本计量单位 计算机计量标准 进制说明 进制转换 进制转换总结 计算机及计算机网络中传输.存储.运算基本计量单位 基本计量单位 ...
- 半小时掌握进制转换!
半小时掌握进制转换 什么是进制转换 进制转换的本质 常用的进制 十进制 简介 计数方法 转换 十进制与二进制的相互转换 十进制与八进制的相互转换 十进制与十六进制的相互转换 八进制 简介 转换 八进制 ...
- Python学习(一) 进制转换、ASCLL转换
进制转换 进制之间的转换主要是利用十进制完成的.在进制转换的过程中,可以首先将相关进制转换为十进制的,再进行二次转换达到想要的效果.当然在进制转换中,也可以直接进行转换,不进行十进制的中转操作. 1. ...
最新文章
- docker概念:用Dockerfile生成Image
- Oracle的UNION函数
- Direct2D (11) : 画刷之 ID2D1LinearGradientBrush
- 关于泛泛而谈和刻意练习的思考
- maven pom java版本_Maven更新POM中的JDK版本(比如更新为JDK1.8)
- 任务调度之Elastic-Job1
- UML模型中的图-静态图【类图、对象图】
- XML —— DTD介绍
- 【课程】MIT深度学习课程:架起理论与实践的桥梁
- 全局变量、局部变量、静态全局变量、静态局部变量的区别
- Android P通知
- SSH Backgroup工具汇总
- java 2015001_hbase的Java操作
- docker 阿里镜像加速
- 这个 bug,硬是让我折腾了一周
- Mybatis关联关系
- 阿里腾讯大裁员,中概股暴跌!没病千万别去互联网公司......
- html规范eml文件,eml 文件头解析
- 世界最高山峰是珠穆朗玛峰(8844.43米=8844430毫米),假如我有一张足够大的纸,它的厚度是0.1毫米。请问,我折叠多少次,可以折成珠穆朗玛峰的高度?
- 12.12下周黄金白银价格走势分析及期货原油操作建议布局
热门文章
- A nice speech——王强 at 36 Kr
- 想分享给马云和李开复的一篇文章
- 组织架构图实现——jOrgChart的使用
- 如何去处右下角任务栏闪动邮件图标小广告?WPS干的好事!
- Dapper数据库字段(列)与实体属性名不一致,通过Column特性自动注入映射
- 只要还在玩股票一定要好好学习、领会这篇文章
- Introduction to Fabric.js. Part 4.(介绍Fabric.js第四部分)
- -webkit-scrollbar 滚动条样式设置
- 【超详细】2021最新版Redis安装教程(基于Redis 6.2.x版本)
- yum安装Redis教程