题解 | 进制转换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; }