当前位置: 首页 > 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.xdnf.cn/news/424297.html

相关文章:

  • 【Pandas】pandas DataFrame cummin
  • 蓝桥杯 11.日志统计
  • 亚远景-基于ASPICE的汽车供应链质量管控培训
  • 网站遭受扫描攻击,大量爬虫应对策略
  • C++伯罗奔尼撒箭阵 全国信息素养大赛复赛决赛 C++小学/初中组 算法创意实践挑战赛 内部集训模拟题详细解析
  • springboot2.7.18 升级到3.1.5过程
  • Ubuntu 22.04.5 LTS 系统中配置仓库源
  • Gartner《如何有效融合Data Fabric 与Data Mesh数据战略》学习心得
  • 【TDengine源码阅读】DLL_EXPORT
  • 【设备管理—磁盘调度算法】
  • 【FMMT】基于模糊多模态变压器模型的个性化情感分析
  • 动态引入document.write的脚本
  • 出于PCB设计层面考虑,连排半孔需要注意哪些事项?
  • 5. 动画/过渡模块 - 交互式仪表盘
  • talk-linux 不同用户之间终端通信
  • C++ 基础知识
  • C++—特殊类设计设计模式
  • 汇添富基金徐寅喆:低利率环境下的短债基金投资策略
  • Hadoop的目录结构和组成
  • CSS3 基础知识、原理及与CSS的区别
  • 基于FPGA的视频接口之千兆网口(六GigE纯逻辑)
  • 使用scp命令拷贝hadoop100中文件到其他虚拟机中
  • SQL、Oracle 和 SQL Server 的比较与分析
  • 数据结构(一) 绪论
  • 【C语言极简自学笔记】井字棋开发
  • Ozon平台产品关键词优化指南:精准引流与转化提升实战策略
  • 影刀RPA开发-CSS选择器介绍
  • 中国品牌日 | 以科技创新为引领,激光院“风采”品牌建设结硕果
  • vscode 同一个工作区,不同文件夹之间跳转问题
  • 嵌入式学习笔记 - HAL_ADC_ConfigChannel函数解析