题解 | 数制转换 与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转十

全部评论

相关推荐

未知的命运:大佬这都找不到我还找啥啊
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务