题解 | 数制转换 与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转十
 查看11道真题和解析
查看11道真题和解析