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

[保研/考研机试] KY235 进制转换2 清华大学复试上机题 C++实现

题目链接:

KY235 进制转换2 icon-default.png?t=N6B9https://www.nowcoder.com/questionTerminal/ae4b3c4a968745618d65b866002bbd32

描述

将M进制的数X转换为N进制的数输出。

输入描述:

输入的第一行包括两个整数:M和N(2<=M,N<=36)。
下面的一行输入一个数X,X是M进制的数,现在要求你将M进制的数X转换成N进制的数输出。

输出描述:

输出X的N进制表示的数。

示例1

输入:

10 2
11

输出:

1011

备注:

注意输入时如有字母,则字母为大写,输出时如有字母,则字母为小写。

思路:

将M进制数转换为N进制数。可以先将数从M进制转换为十进制,再从十进制转换为N进制。对于本题,需要注意的是,进制大于10时,就要用字符来表示,而这需要实现字符与数字之间的转换。

求解十进制数x的k进制表示时,只需不断地对x求余(对k)、求商(除以k),即可由低到高依次得到各个数位上的数。反过来,要求由k进制表示的数字的十进制值时,需要依次计算各个数位上的数字与该位权重的积(第n位的权重为k"-1),然后将它们依次累加,即可得到该十进制值。

源代码:

#include<iostream>
#include<string>
#include<vector>
using namespace std;//例题6.4 进制转换2
//将字符转换成整型数
//题目已说明:输入时如有字母,则字母为大写。这里在转换字母是要减去'A'
int CharToInt(char c) {if (c >= '0' && c <= '9') {return c - '0';}else {return c - 'A' + 10;}
}//将整型数转换成字符串
//题目已说明:输出时如有字母,则字母为小写。这里在转换字母是要加上'a'
char IntToChar(int n) {if (n >= 0 && n <= 9) {return n + '0';}else {return n - 10 + 'a';}
}int main()
{int m, n;cin >> m >> n;string str;cin >> str;long long num = 0;//m进制转10进制for (int i = 0; i < str.size(); i++) {num *= m;num += CharToInt(str[i]);}//10进制转n进制 “除n取余法”vector<char> nums;while (num != 0) {nums.push_back(IntToChar(num % n));num /= n;}//逆序输出for (int i = nums.size() - 1; i >= 0; i--) {cout << nums[i];}cout << endl;return 0;
}

提交结果:

http://www.lryc.cn/news/122802.html

相关文章:

  • 机器学习 | Python实现KNN(K近邻)模型实践
  • Mybatis 源码 ③ :SqlSession
  • Python 潮流周刊#15:如何分析异步任务的性能?
  • 二叉搜索树K和KV结构模拟
  • nlohmann json:检查object是否存在某个键
  • 15-1_Qt 5.9 C++开发指南_Qt多媒体模块概述
  • 分页查询中起始位置的计算
  • Failed to execute goal org.apache.maven.plugins
  • 50吨收费站生活一体化污水处理设备厂家价格低
  • UG NX二次开发(C#)-CAM-获取刀具类型
  • Flask 框架集成Bootstrap
  • 在k8s 1.26.6上部署ES集群
  • 用神经网络玩转数据聚类:自编码器的原理与实践
  • Linux系统调试课:Linux Kernel Printk
  • 不同版本Idea部署Maven和Tomcat教学
  • Vue 3.0中的Treeshaking?
  • 开源可商业运营的ChatGpt网页源码v1.2.2
  • 驱动阿托斯DLHZO-T伺服比例阀放大器定制
  • SysML V1.2 Blocks
  • 反编译微信小程序,可导出uniapp或taro项目
  • 鉴源实验室丨汽车网络安全攻击实例解析(二)
  • pycorrector一键式文本纠错工具,整合了BERT、MacBERT、ELECTRA、ERNIE等多种模型,让您立即享受纠错的便利和效果
  • Linux 日志管理
  • 统计学补充概念04-最大似然估计
  • mysql一些统计实用函数
  • IC设计仿真云架构
  • 日常BUG ——乱码
  • SpringBoot复习:(44)MyBatisAutoConfiguration
  • SpringBoot校验,DTO文件中常用的注解应用案例.
  • Qt 窗口随鼠标移动效果