P1017 进制转换

题目描述

我们可以用这样的方式来表示一个十进制数: 将每个阿拉伯数字乘以一个以该数字所处位置的(值减1)为指数,以10为底数的幂之和的形式。例如:123可表示为 1\times 10^2+2\times 10^1+3\times 10^01×102+2×101+3×100这样的形式。

与之相似的,对二进制数来说,也可表示成每个二进制数码乘以一个以该数字所处位置的(值-1)为指数,以2为底数的幂之和的形式。一般说来,任何一个正整数R或一个负整数-R都可以被选来作为一个数制系统的基数。如果是以R或-R为基数,则需要用到的数码为 0,1,....R-1。例如,当R=7时,所需用到的数码是0,1,2,3,4,5和6,这与其是R或-R无关。如果作为基数的数绝对值超过10,则为了表示这些数码,通常使用英文字母来表示那些大于9的数码。例如对16进制数来说,用A表示10,用B表示11,用C表示12,用D表示13,用E表示14,用F表示15。

在负进制数中是用-R 作为基数,例如-15(十进制)相当于110001(-2进制),并且它可以被表示为2的幂级数的和数:

110001=1\times (-2)^5+1\times (-2)^4+0\times (-2)^3+0\times (-2)^2+0\times (-2)^1 +1\times (-2)^0110001=1×(−2)5+1×(−2)4+0×(−2)3+0×(−2)2+0×(−2)1+1×(−2)0

设计一个程序,读入一个十进制数和一个负进制数的基数, 并将此十进制数转换为此负进制下的数:-R∈{-2,-3,-4,...,-20}

输入输出格式

输入格式:

输入的每行有两个输入数据。

第一个是十进制数N(-32768<=N<=32767); 第二个是负进制数的基数-R。

输出格式:

结果显示在屏幕上,相对于输入,应输出此负进制数及其基数,若此基数超过10,则参照16进制的方式处理。

输入输出样例

输入样例#1: 复制

30000 -2

输出样例#1: 复制

30000=11011010101110000(base-2)

输入样例#2: 复制

-20000 -2

输出样例#2: 复制

-20000=1111011000100000(base-2)

输入样例#3: 复制

28800 -16

输出样例#3: 复制

28800=19180(base-16)

输入样例#4: 复制

-25000 -16

输出样例#4: 复制

-25000=7FB8(base-16)

说明

NOIp2000提高组第一题

负进制转化

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#define N 110
using namespace std;
char c[N];
int n,m,k,sum;
int read()
{int 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()
{n=read(),m=read();printf("%d=",n);while(n){k=n%m;n/=m;if(k<0) k-=m,n+=1;if(k>9) c[++sum]=char(k-10+'A');else c[++sum]=char(k+'0');}for(int i=sum;i>=1;i--)printf("%c",c[i]);printf("(base%d)",m);return 0;
}

转载于:https://www.cnblogs.com/z360/p/7895685.html

洛谷——P1017 进制转换相关推荐

  1. 洛谷——P2084 进制转换

    P2084 进制转换 题目背景 无 题目描述 今天小明学会了进制转换,比如(10101)2 ,那么它的十进制表示的式子就是 : 124+0*23+122+0*21+1*2^0, 那么请你编程实现,将一 ...

  2. 洛谷P1143 进制转换

    题目描述 请你编一程序实现两种不同进制之间的数据转换. 输入格式 共三行,第一行是一个正整数,表示需要转换的数的进制n(2≤n≤16),第二行是一个n进制数,若n>10则用大写字母A-F表示数码 ...

  3. 洛谷 P2084 进制转换

    P4122 [USACO17DEC]Blocked Billboard 题目描述 During long milking sessions, Bessie the cow likes to stare ...

  4. P1017 进制转换 (洛谷)

    进制转换 (洛谷 P1017P1017P1017题) 题解来了,如果有错尽管批评指正,我会努力修改的首先就是我们一点都不可爱的题目传送门了,接下来是枯燥的题目描述,收揽的同学可以继续往下看,如果想先尝 ...

  5. 洛谷 P1013 进制位

    P1013 进制位 题目描述 著名科学家卢斯为了检查学生对进位制的理解,他给出了如下的一张加法表,表中的字母代表数字. 例如: + L K V E L L K V E K K V E KL V V E ...

  6. C语言32位正整数作为id进程,SOJ4453 Excel列数 进制转换

    描述 我们都知道Excel的列数是用字母表示的,比如第1列对应A,第27列对应AA. 假设给定一个正整数n,你能给出它所对应的字母表示么? 输入格式 程序需要读入多个测试样例,每个测试样例中: 一个正 ...

  7. 【进制转换】负进制转换 多进制转换

    1.负进制转换 洛谷P1017 进制转换 负进制的转换和正进制的转换雷同,都是用短除取余法,这里要保证余数都要是正数才行: 要想让本来余数是负数变为正数,其实很好操作,就直接让商+1,余数-(相应的进 ...

  8. 【Java】进制转换

    文章目录 八进制 直接数值赋值 来自字符串的转型 printf()输出八进制 八进制转型String 八进制总结 进制转换 X进制转Y进制 进制与位运算 计算二进制数中1的个数 八进制 直接数值赋值 ...

  9. 信息学奥赛一本通 1820:【00NOIP提高组】进制转换 | 洛谷 P1017 [NOIP2000 提高组] 进制转换

    [题目链接] ybt 1820:[00NOIP提高组]进制转换 洛谷 P1017 [NOIP2000 提高组] 进制转换 注意:两OJ上题目内容相同,输入输出要求不同 [题目考点] 1.数制 [解题思 ...

最新文章

  1. 看懂GE Predix ,就看懂了工业互联网
  2. linux mysql temp 设置_linux上mysql的简单入门
  3. Java ObjectInputStream readLong()方法(带示例)
  4. 完整免授权彩虹源码(多模板+小储云商城模板)6.7.5
  5. python散点图数据怎么输入_python 散点图添加标签
  6. 第一个Net+Mysql的例子,比想象的简单很多
  7. 激光雷达的障碍物检测
  8. recv函数linux,linux 下调用recv函数,死循环在recv函数里面,什么原因?
  9. Android Studio中HTTP的请求
  10. 最新最全省级面板数据(1997-2020)
  11. Object-C,文件路径API
  12. 《IT老外在中国》第22期:“中国餐桌”上的法式创新
  13. AOP防止表单重复提交
  14. 14届蓝桥杯青少组选拔赛C++_2022.11.27
  15. js基础-event对象
  16. 16281053_杨瑷彤_操作系统第五次实验-文件系统
  17. EDIUS 9带你剪辑萌萌的《疯狂动物城》
  18. 嬴彻科技完成2.7亿美元融资 京东物流、美团、太盟投资集团联合领投
  19. 中文字符串的编码转换 UTF-8//GBK
  20. HtmlUnit抓取Ajax网页,例子是去哪儿机票

热门文章

  1. 消费者服务消费延时分析
  2. Linux学习-X Server 配置文件解析与设定
  3. Android学习笔记(八)
  4. Tigase数据库结构(1)
  5. Qt for Android 部署流程分析
  6. [转载] ANTLR——嵌入文法的Actions
  7. Solaris上的开发环境安装及设置
  8. Python使用pdfkit、wkhtmltopdf将html转换为pdf错误记录文档
  9. Mybatis自学日志05(复杂环境的搭建)
  10. SpringBoot集成Log4j2框架