当前位置: 首页 > news >正文

机试刷题:进制转换3

题目来源:N诺

一、题目描述

二、解题思路

过程模拟,先转换为十进制,再转换为N进制即可。

注意:转换的时候可能出现字母,注意字母的表示。

用string和char类型对数据进行存储要更方便。

#include <iostream>
#include <vector>
#include <cmath>
#include <string>
#include <algorithm>
using namespace std;// 转为十进制
int Mto10(int m, string x) {long long x_10 = 0;int length = x.length();int power = 1; // 当前的幂值for (int i = 0; i < length; ++i) {char temp = x[length - 1 - i]; // 从字符串末尾开始遍历int digit = (temp >= 'A') ? (temp - 'A' + 10) : (temp - '0');x_10 += power * digit;power *= m; // 手动计算幂}return x_10;
}// 转为N进制
vector<char> toN(int n, int x_10) {vector<char> result;while (x_10) {long long temp = x_10 % n;if (temp >= 10) {result.push_back('a' + (temp - 10)); // 转换为小写字母} else {result.push_back('0' + temp); // 转换为数字字符}x_10 /= n;}return result;
}int main() {int m, n;cin >> m >> n;string x;cin >> x;int x_10 = Mto10(m, x);vector<char> result = toN(n, x_10);// 如果结果为空,输出0if (result.empty()) {cout << "0";} else {reverse(result.begin(), result.end());for (char c : result) {cout << c;}}return 0;
}

相关文章:

  • 蓝桥杯题库经典题型
  • 【Linux】操作系统入门:冯诺依曼体系结构
  • Python作业练习3
  • 【愚公系列】《Manus极简入门》036-物联网系统架构师:“万物互联师”
  • mysql环境配置
  • do while
  • 『大模型笔记』Langchain作者Harrison Chase专访:环境智能体与全新智能体收件箱
  • 从零开始掌握FreeRTOS(1)移植到STM32
  • Java Web 应用安全响应头配置全解析:从单体到微服务网关的实践
  • 【大模型LLM学习】MiniCPM的注意力机制学习
  • C语言| 静态局部变量
  • FastDDS Transport功能模块初步整理
  • ST25DV04K NFC TAG 使用日志
  • 发布两款AI会议耳机新品,未来智能解码AI硬件的三重价值跃迁
  • day24 python元组和OS模块的深度探索
  • Hapi.js知识框架
  • containerd 之使用 ctr 和 runc 进行底层容器操作与管理
  • 深度学习---获取模型中间层输出的意义
  • day19-线性表(顺序表)(链表I)
  • 记录为什么LIst数组“增删慢“,LinkedList链表“查改快“?
  • 大英博物馆展歌川广重:他是梵高最钟爱的浮世绘名家
  • 北京今日白天超30℃晚间下冰雹,市民称“没见过这么大颗的”
  • 中国巴西民间推动建立经第三方验证的“森林友好型”牛肉供应链
  • 射箭世界杯上海站摘得两银,中国队新周期冲击韩国缩小差距
  • 山西忻州市人大常委会副主任郭建平接受审查调查
  • 明查|哈佛大学批改美教育部长来信,红笔标出语法错误?