文章
26
粉丝
0
获赞
10
访问
1.8k
#include<bits/stdc++.h>
using namespace std;
int main(){
int m,n;
string s;
cin>>m>>n;
cin>>s;
if(m==n){
//需要注意的是这里题目要求输入时的字母要大写,输出时的字母需要为小写
for(int i=0;i<s.length();i++){
if(s[i]>='A'&&s[i]<='Z'){
cout<<char(s[i]+32);
}else{
cout<<s[i];
}
}
cout<<endl;
}else{
//M转十进制
long long res=0;//需要注意这里需要考虑稍微大点的数
for(int i=s.length()-1;i>=0;i--){
if(s[i]>='A'&&s[i]<='Z'){
res+=(s[i]-55)*pow(m,s.length()-1-i);
}else if(s[i]-'0'>=0&&s[i]-'0'<=9){
res+=(s[i]-'0')*pow(m,s.length()-1-i);
}
}
//十进制转N进制
int num[100]={0},index=0;
while(res!=0){
num[index]=res%n;
index++;
res=res/n;
}
for(int i=index-1;i>=0;i--){
if(num[i]>=10&&num[i]<=35){
cout<<char(num[i]+87);
}else if(num[i]>=0&&num[i]<=9){
cout<<num[i];
}
}
cout<<end...
登录后发布评论
暂无评论,来抢沙发