题解 | 进制转换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;
}
汤臣倍健公司氛围 402人发布
