题解 | 进制转换2

进制转换2

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

#include <stdio.h>
#include <string>
using namespace std;
long long  power(int n,int m){//n^m
	long long k=1;
	for(int i=0;i<m;i++){
		k*=n;
	}
	return k;
}
char xjinzhi(int n){
	if(n>9){
		return 'A'+n-10;
	}else{
		return n+'0';
	}
}
long long jinzhix(char n){
	if(n<='9'&&n>='0'){
		return n-'0';
	}else{
		return n-'A'+10;
	}
}
int main(){
	int n,m;
	scanf("%d%d",&m,&n);
	char arr[1000];
	scanf("%s",arr);
	string str1=arr;
	long long num=0;
	for(int i=str1.size()-1;i>=0;i--){
		long long now_num = power(m,str1.size()-i-1);
		num+=now_num*jinzhix(str1[i]);
	}
//	printf("%lld\n",num);
	string result="";
	while(num!=0){
		int mod = num%n;
		num=num/n;
		result = xjinzhi(mod)+result;
	}
	printf("%s",result.c_str());


	return 0;
}

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务