题解 | 数制转换 与m转n完全相同
数制转换
https://www.nowcoder.com/practice/8ef02ef8571b417d8c311a87861f7a03
#define _CRT_SECURE_NO_WARNINGS
#include <cstdio>
#include <vector>
#include <string>
#include <iostream>
using namespace std;
char int2char(int target) {
if (target <=9) {
return target + '0';
}
else {
return target - 10 + 'A';
}
}
void convert(long long number, int n) {
vector<char> vec;
if (number == 0) {
vec.push_back(0);
}
else {
while (number != 0) {
vec.push_back(int2char(number % n));
number /= n;
}
}
for (int i = vec.size() - 1; i >= 0; i--) {
printf("%c", vec[i]);
}
printf("\n");
}
int char2int(char c) {
if (c <= '9') {
return c - '0';
}
else if(c>='A'&&c<='F'){
return c - 'A' + 10;
}else{
return c - 'a' + 10;
}
}
long long convertmtt(string str, int m) {
long long number = 0;
for (int i = 0; i < str.size(); i++) {
number *= m;
number += char2int(str[i]);
}
return number;
}
int main() {
int m, n;
while (scanf("%d", &m) != EOF) {
string str;
cin >> str;
scanf("%d", &n);
long long number = convertmtt(str, m);// m zhuan shi
convert(number, n);// shi zhuan n
}
return 0;
}
进制转换问题 文章被收录于专栏
包括任意进制的转换(m转n,先m转10,再10转n) 和大整型的进制转换(0.利用字符串存储大整型 1.实现字符串除法以完成10转n 2.实现字符串加法和字符串乘法以完成m转十
查看14道真题和解析