文章

16

粉丝

33

获赞

2

访问

3.2k

头像
进制转换3 题解:
P1422 清华大学/厦门大学机试题
发布于2024年3月12日 16:23
阅读数 264

# 题目——进制转换3
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/f3e156df252e4bc4a98b351fff77dc29.png)

# 锲而不舍——先给自己立一个纪念碑
![-](https://img-blog.csdnimg.cn/direct/9cf1ff3b5d1f4560a12274c6c308dcf5.png)
## 思路
1. 根据输入信息,将输入值从m进制转换成10进制
2. 将10进制数据转换成n进制数据输出
### 输入值从m进制转换成10进制
1. 将输入值视作字符串
2. 依次取出字符串字符,
    - 如果是数字: 减去‘0’得到真实值
    - 如果是字母:**减去‘A’+10到真实值**,注意,这里要减去10,我提交了一万遍才过很大程度上就是忘记了这个10
    
3. 计算每一位真实值*所在位数权值(例如1000中的1,位于千位,权值是1000),对于m进制数,相应$$位的权值=该位真实值*m^{该位在第几位}$$
4. 算出每一位的值求和即可转为实际的10进制值

### 将10进制数据转换成n进制数据输出
1. 将10进制数据每次对n取余,得到的数字转换成相应的字符存到字符串内
 2. 将字符串当作字符数组,倒序输出,即为所要的n进制数据

上述方法在计组等书中有描述,类似下图(注意,他除2没有写出来,其实是不太规范的):(来自知乎作者@chee【[十进制转成二进制的两种方式](https://zhuanlan.zhihu.com/p/159127499)】)
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/2c64fed30aba4017aac0e6fff3c28741.png)
### 数字和字母的输入输出问题
显然,输入进制由2~36进制不等,囊括了从0到1,从a到z的所有组合,那么输入和输出必定是字符串形式
这就带来两个问题,一个是输入接收字母转换成数字,另...

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发