NOIP 2000 进制转换
题目描述
我们可以用这样的方式来表示一个十进制数: 将每个阿拉伯数字乘以一个以该数字所处位置的(值减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)
1 #include<cstdio> 2 #include<iostream> 3 #include<cstring> 4 #include<algorithm> 5 #include<cmath> 6 using namespace std; 7 typedef long long ll; 8 int n, base, ans[100], pos = 0; 9 int main() 10 { 11 freopen("t1.in","r",stdin); 12 freopen("t1.out","w",stdout); 13 scanf("%d%d", &n, &base); 14 printf("%d=", n); 15 while(n) 16 { 17 ans[++pos] = n % base; 18 n /= base; 19 if(ans[pos] < 0) 20 { 21 n++; 22 ans[pos] -= base; //因为是负数,就相当于加上该进制(绝对值) 23 } 24 } 25 for(int i = pos; i >= 1; --i) 26 if(ans[i] < 10) printf("%d", ans[i]); 27 else printf("%c", 'A' + ans[i] - 10); 28 printf("(base%d)\n", base); 29 return 0; 30 }
转载于:https://www.cnblogs.com/mrclr/p/8719098.html
NOIP 2000 进制转换相关推荐
- 杭电2031进制转换
进制转换 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submi ...
- linux 大数字 进制转换,Linux下用bc快速进行数字进制转换
介绍如何在Linux下用bc命令进行快速的数字进制转换. 我想Windows里,数字进制转换最方便的就是自带的calc计算器,但是它原没有我们可爱的Linux方便.Linux下,我们在term里敲 几 ...
- 洛谷——P2084 进制转换
P2084 进制转换 题目背景 无 题目描述 今天小明学会了进制转换,比如(10101)2 ,那么它的十进制表示的式子就是 : 124+0*23+122+0*21+1*2^0, 那么请你编程实现,将一 ...
- C语言32位正整数作为id进程,SOJ4453 Excel列数 进制转换
描述 我们都知道Excel的列数是用字母表示的,比如第1列对应A,第27列对应AA. 假设给定一个正整数n,你能给出它所对应的字母表示么? 输入格式 程序需要读入多个测试样例,每个测试样例中: 一个正 ...
- 进制转换(进制转换)
进制转换 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submi ...
- 基于MATLAB的进制转换
1.常用进制转换方法(除k取余法) (1)十进制与二进制之间的转换 方法:除2取余法,即每次将整数部分除以2,余数为该位权上的数,而商继续除以2,余数又为上一个位权上的数,这个步骤一直持续下去,直到商 ...
- (HDU2031 C++) 进制转换
进制转换 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submissi ...
- [NOIP2000]进制转换
链接:登录-专业IT笔试面试备考平台_牛客网 来源:牛客网 我们可以用这样的方式来表示一个十进制数: 将每个阿拉伯数字乘以一个以该数字所处位置的值减1为指数,以10为底数的幂之和的形式.例如:123可 ...
- hdoj 2031 进制转换
进制转换 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submissi ...
最新文章
- 从1G到5G,从回顾过去到展望未来
- 一文带你深入理解JVM内存模型
- 【uoj#139】[UER #4]被删除的黑白树 贪心
- 【python】入门指南:控制语句
- LeetCode 110 Balanced Binary Tree(平衡二叉树)(*)
- 使用python制作聊天框解谜游戏_使用Python写一个小游戏alien invasion!
- 使用MonoDevelop开发跨平台的应用程序
- 率土之滨显示未选择服务器怎么办,率土之滨未转服,为什么要转服
- net软件安装后不能卸载的解决方法
- 8种经典的统计学悖论18种经典的哲学悖论
- android 自由落体,自由落体手游
- (实测有用)登录Github显示“您的连接不是专用连接”和”GitHub.com拒绝了我们的连接请求“解决办法!!!
- linux下nginx配置访问静态图片的解决办法
- 300英雄11月服务器维护,300英雄11月7日更新了什么?300英雄11月7日更新内容一览...
- 学习笔记(十)在网页中添加矢量图形
- Keil_MDK 中绝对地址定位问题
- 公众号降权了可以养好嘛,微信公众号降权了多久能恢复
- 网易云音乐部门技术面
- python取前三位_python的字符串截取||取字符串前三位
- latex安装报错-failed: No such file or directory at G://tlpkg/TeXLive/TLUtils.pm line 1383, <STDIN> line
热门文章
- opencv学习笔记06
- Queue - 一种线程安全的FIFO实现
- nasa和linux的关系,跟美国NASA毅力号登陆火星的Linux是一个无图形的纯命令行系统...
- 一个大数据平台省了20个IT人力——敦奴数据平台建设案例分享
- php注册 绑定的容器,php – 将Eloquent模型绑定到服务容器
- php 获取域名_在PHP中截取当前页面URL地址及URL信息的方法
- python不等于缺陷
- 行星齿轮设计_3D打印用于制造刚度平衡的行星架
- insert批量插入500ms_不吹牛!Mysql 千万数据10秒批量插入只需三步
- 是指能够被程序员看到的计算机系统的属性,计算机组成原理复习范围详细.doc...