题解 | #进制转换2#

进制转换2

http://www.nowcoder.com/practice/ae4b3c4a968745618d65b866002bbd32

#include<iostream>
#include<cstdio>
#include<stack>

using namespace std;

int CharToInt(char c){
	if(c >= '0' && c <= '9'){
		return c - '0';        //数字型字符转数字
	}else{
		return c - 'A' + 10;   //字符型字符转数字
	}
}


char IntToChar(int target){
	if(target < 10){
		return target + '0';        
	}else{
		return target + 'a' - 10;   
	}
}

long long  ConvertM2T(string str,int current){      //current为当前需转换的目标的当前进制
	long long  number = 0;
	for(int i = 0; i < str.size(); ++i){
		number *= current;
		number += CharToInt(str[i]);
	}
	return number;
}

void ConvertT2N(long long  number,int target) {   //target为目标进制
	stack<char> myStack;
	if(number == 0){
		myStack.push('0');
	}
	while(number != 0) {
		myStack.push(IntToChar(number % target));
		number /= target;
	}
	while(!myStack.empty()) {
		printf("%c",myStack.top());
		myStack.pop();
	}
	printf("\n");
}


int main() {
	int m,n;
	while(scanf("%d%d",&m,&n) != EOF){
		string str;
		cin >> str;
		long long number = ConvertM2T(str,m);    //先转换成十进制
		ConvertT2N(number,n);     //再将十进制转n进制
	}
	return 0;
}
全部评论

相关推荐

1 收藏 评论
分享
正在热议
# 牛客帮帮团来啦!有问必答 #
1153099次浏览 17157人参与
# 通信和硬件还有转码的必要吗 #
11244次浏览 101人参与
# 不去互联网可以去金融科技 #
20787次浏览 259人参与
# 和牛牛一起刷题打卡 #
19108次浏览 1635人参与
# 实习与准备秋招该如何平衡 #
203529次浏览 3628人参与
# 大厂无回复,继续等待还是奔赴小厂 #
5019次浏览 33人参与
# OPPO开奖 #
19340次浏览 268人参与
# 通信硬件薪资爆料 #
266087次浏览 2484人参与
# 国企是理工四大天坑的最好选择吗 #
2236次浏览 34人参与
# 互联网公司评价 #
97763次浏览 1280人参与
# 简历无回复,你会继续海投还是优化再投? #
25041次浏览 354人参与
# 0offer是寒冬太冷还是我太菜 #
454983次浏览 5125人参与
# 国企和大厂硬件兄弟怎么选? #
53928次浏览 1013人参与
# 参加过提前批的机械人,你们还参加秋招么 #
14649次浏览 349人参与
# 硬件人的简历怎么写 #
82299次浏览 852人参与
# 面试被问第一学历差时该怎么回答 #
19415次浏览 213人参与
# 你见过最离谱的招聘要求是什么? #
28564次浏览 248人参与
# 学历对求职的影响 #
161286次浏览 1804人参与
# 你收到了团子的OC了吗 #
538895次浏览 6389人参与
# 你已经投递多少份简历了 #
344350次浏览 4963人参与
# 实习生应该准时下班吗 #
97035次浏览 722人参与
# 听劝,我这个简历该怎么改? #
63530次浏览 622人参与
牛客网
牛客企业服务