当前位置: 首页 > 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;
}

http://www.dtcms.com/a/189286.html

相关文章:

  • 蓝桥杯题库经典题型
  • 【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链表“查改快“?
  • Vue.js---分支切换与cleanup
  • 门禁人脸识别系统详细技术文档
  • 使用聊天模型和提示模板构建一个简单的 LLM 应用程序
  • 论坛系统(中-1)
  • Excel宏和VBA
  • 【周输入】510周阅读推荐-1
  • Timsort 算法
  • Promise.all静态方法
  • 销量预测评估指标
  • Python Django基于模板的药品名称识别系统【附源码、文档说明】