洛谷——P1017 进制转换
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进制的方式处理。
输入输出样例
30000 -2
30000=11011010101110000(base-2)
-20000 -2
-20000=1111011000100000(base-2)
28800 -16
28800=19180(base-16)
-25000 -16
-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 进制转换相关推荐
- 洛谷——P2084 进制转换
P2084 进制转换 题目背景 无 题目描述 今天小明学会了进制转换,比如(10101)2 ,那么它的十进制表示的式子就是 : 124+0*23+122+0*21+1*2^0, 那么请你编程实现,将一 ...
- 洛谷P1143 进制转换
题目描述 请你编一程序实现两种不同进制之间的数据转换. 输入格式 共三行,第一行是一个正整数,表示需要转换的数的进制n(2≤n≤16),第二行是一个n进制数,若n>10则用大写字母A-F表示数码 ...
- 洛谷 P2084 进制转换
P4122 [USACO17DEC]Blocked Billboard 题目描述 During long milking sessions, Bessie the cow likes to stare ...
- P1017 进制转换 (洛谷)
进制转换 (洛谷 P1017P1017P1017题) 题解来了,如果有错尽管批评指正,我会努力修改的首先就是我们一点都不可爱的题目传送门了,接下来是枯燥的题目描述,收揽的同学可以继续往下看,如果想先尝 ...
- 洛谷 P1013 进制位
P1013 进制位 题目描述 著名科学家卢斯为了检查学生对进位制的理解,他给出了如下的一张加法表,表中的字母代表数字. 例如: + L K V E L L K V E K K V E KL V V E ...
- C语言32位正整数作为id进程,SOJ4453 Excel列数 进制转换
描述 我们都知道Excel的列数是用字母表示的,比如第1列对应A,第27列对应AA. 假设给定一个正整数n,你能给出它所对应的字母表示么? 输入格式 程序需要读入多个测试样例,每个测试样例中: 一个正 ...
- 【进制转换】负进制转换 多进制转换
1.负进制转换 洛谷P1017 进制转换 负进制的转换和正进制的转换雷同,都是用短除取余法,这里要保证余数都要是正数才行: 要想让本来余数是负数变为正数,其实很好操作,就直接让商+1,余数-(相应的进 ...
- 【Java】进制转换
文章目录 八进制 直接数值赋值 来自字符串的转型 printf()输出八进制 八进制转型String 八进制总结 进制转换 X进制转Y进制 进制与位运算 计算二进制数中1的个数 八进制 直接数值赋值 ...
- 信息学奥赛一本通 1820:【00NOIP提高组】进制转换 | 洛谷 P1017 [NOIP2000 提高组] 进制转换
[题目链接] ybt 1820:[00NOIP提高组]进制转换 洛谷 P1017 [NOIP2000 提高组] 进制转换 注意:两OJ上题目内容相同,输入输出要求不同 [题目考点] 1.数制 [解题思 ...
最新文章
- 看懂GE Predix ,就看懂了工业互联网
- linux mysql temp 设置_linux上mysql的简单入门
- Java ObjectInputStream readLong()方法(带示例)
- 完整免授权彩虹源码(多模板+小储云商城模板)6.7.5
- python散点图数据怎么输入_python 散点图添加标签
- 第一个Net+Mysql的例子,比想象的简单很多
- 激光雷达的障碍物检测
- recv函数linux,linux 下调用recv函数,死循环在recv函数里面,什么原因?
- Android Studio中HTTP的请求
- 最新最全省级面板数据(1997-2020)
- Object-C,文件路径API
- 《IT老外在中国》第22期:“中国餐桌”上的法式创新
- AOP防止表单重复提交
- 14届蓝桥杯青少组选拔赛C++_2022.11.27
- js基础-event对象
- 16281053_杨瑷彤_操作系统第五次实验-文件系统
- EDIUS 9带你剪辑萌萌的《疯狂动物城》
- 嬴彻科技完成2.7亿美元融资 京东物流、美团、太盟投资集团联合领投
- 中文字符串的编码转换 UTF-8//GBK
- HtmlUnit抓取Ajax网页,例子是去哪儿机票