当前位置:网站首页>Number system conversion (16 questions per day during summer vacation)
Number system conversion (16 questions per day during summer vacation)
2022-08-05 16:48:00 【sweetheart7-7】
求任意两个不同进制非负整数的转换( 2 2 2 进制 ∼ 16 16 16 进制),所给整数在 i n t int int 范围内.
不同进制的表示符号为 ( 0 , 1 , … , 9 , a , b , … , f ) (0,1,…,9,a,b,…,f) (0,1,…,9,a,b,…,f)或者 ( 0 , 1 , … , 9 , A , B , … , F ) (0,1,…,9,A,B,…,F) (0,1,…,9,A,B,…,F)
输入格式
输入只有一行,包含三个整数 a , n , b a,n,b a,n,b. a a a 表示其后的 n n n 是 a a a 进制整数, b b b 表示欲将 a a a 进制整数 n n n 转换成 b b b 进制整数.
a , b a,b a,b 是十进制整数.
数据可能存在包含前导零的情况.
输出格式
输出包含一行,该行有一个整数为转换后的 b b b 进制数.
输出时字母符号全部用大写表示,即 ( 0 , 1 , … , 9 , A , B , … , F ) (0,1,…,9,A,B,…,F) (0,1,…,9,A,B,…,F).
数据范围
2 ≤ a , b ≤ 16 , 2≤a,b≤16, 2≤a,b≤16,
给定的 a a a 进制整数 n n n 在十进制下的取值范围是 [ 1 , 2147483647 ] [1,2147483647] [1,2147483647].
输入样例:
15 Aab3 7
输出样例:
210306
#include<iostream>
using namespace std;
int a, b;
string s;
int get(char & c){
if('0' <= c && c <= '9') return c - '0';
return tolower(c) - 'a' + 10;
}
int getTen(int a, string s){
int res = 0;
for(int i = 0; i < s.size(); i++)
res = res * a + get(s[i]);
return res;
}
string trans(int n, int b){
string res;
char c;
while(n){
int x = n % b;
if(x < 10) c = x + '0';
else c = 'A' + (x - 10);
res = c + res;
n /= b;
}
return res;
}
int main(){
cin >> a >> s >> b;
int x = getTen(a, s);
cout << trans(x, b) << endl;
return 0;
}
边栏推荐
猜你喜欢
随机推荐
从零开始Blazor Server(8)--增加菜单以及调整位置
[Case] Animation of a bear running
2018-10-14 21点20分
华为设备Smart Link和Monitor Link配置命令
2022下半年软考「高项」易混淆知识点汇总
图像处理:坐标变换
【C语言】通讯录(动态版+文件版)
求先序排列
stm32f103开发板入门到手进行开发
UI遍历中页面定义和动作事件筛选方法
2022年五大网络管理发展趋势
软件供应链的漏洞及攻击类型
JPA作持久层操作
为什么那么多人劝退软件测试?月薪1万以上的就别点进来了
西气东输年输气量首超千亿立方米,图扑助力管道监控
Explain the difference between Oracle DELETE and TRUNCATE
三菱FX3U PLC模拟量输入FB(FX2N-2AD)
"Avnet Embedded Weekly" Issue 276: 2022.07.25--2022.07.3
二叉树高度
SystemVerilog Randomization点点滴滴




![[Case] A rotating circle in 3d transformation](/img/da/91f5050deb5c72a1527b5a88160e6c.png)



