博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
牛客网——数制转换
阅读量:4974 次
发布时间:2019-06-12

本文共 1239 字,大约阅读时间需要 4 分钟。

题目描述

    求任意两个不同进制非负整数的转换(2进制~16进制),所给整数在long所能表达的范围之内。     不同进制的表示符号为(0,1,...,9,a,b,...,f)或者(0,1,...,9,A,B,...,F)。

输入描述:

    输入只有一行,包含三个整数a,n,b。a表示其后的n 是a进制整数,b表示欲将a进制整数n转换成b进制整数。a,b是十进制整数,2 =< a,b <= 16。    数据可能存在包含前导零的情况。

输出描述:

    可能有多组测试数据,对于每组数据,输出包含一行,该行有一个整数为转换后的b进制数。输出时字母符号全部用大写表示,即(0,1,...,9,A,B,...,F)。
链接:https://www.nowcoder.com/questionTerminal/8ef02ef8571b417d8c311a87861f7a03来源:牛客网#include
#include
using namespace std;int main(){ int sum = 0, a, b; string n; int t = 49; int temp[50] = {
0}; cin >> a >> n >> b;//输入信息 for (int i = 0; i < n.size(); i++)//转换为十进制 { if (n[i] >= '0' && n[i] <= '9') sum = sum * a + n[i] - '0'; else if (n[i] >= 'a' && n[i] <= 'z') sum = sum * a + n[i] - 'a' + 10; else if (n[i] >= 'A' && n[i] <= 'Z') sum = sum *a + n[i] - 'A' + 10; } while(sum > 0)//转换为b进制 { temp[t--] = sum % b; sum /= b; } for (int i = t + 1; i < 50; i++)//输出 { if (temp[i] >= 10) { cout << char('A' + temp[i] - 10); } else cout << temp[i]; } cout << endl; return 0;}

 

转载于:https://www.cnblogs.com/JAYPARK/p/10192932.html

你可能感兴趣的文章
【bzoj题解】2186 莎拉公主的困惑
查看>>
Protocol Buffer学习笔记
查看>>
Update 语句
查看>>
HBuilder打包Android apk 支付不了问题解决
查看>>
poj2594——最小路径覆盖
查看>>
程序员口述:我是如何工作三年后跳槽到美团的?
查看>>
欧拉函数
查看>>
关于SQL2008 “不允许保存更改。您所做的更改要求删除并重新创建以下表。您对无法重新创建的标进行了更改或者启用了‘阻止保存要求重新创建表的更改’” 解决方案...
查看>>
php文件操作(上传文件)2
查看>>
linux内核驱动模型
查看>>
给WebApp加一个“壳”,实现Andriod系统添加到桌面
查看>>
js 浏览器复制功能
查看>>
数据库总编
查看>>
redis 字符串(string)函数
查看>>
杭州电 1372 Knight Moves(全站搜索模板称号)
查看>>
POJ--3268--Silver Cow Party【SPFA+邻接表】
查看>>
c语言的几个简单memo
查看>>
C#的默认访问权限
查看>>
selenium下打开Chrome报错解决
查看>>
红酒初识
查看>>