模板在手 妙用无穷
直接默写一遍模板上的思想~~
x 数 为n 进制 转化为m进制
先将n进制数的x转化为十进制数,再将这个10进制数转化为m进制数
得出最后的结果:
#include<stdio.h>
#include<iostream>
using namespace std;
string transform(string s,int base,int ans){
string res="";
char tmp;
int sum=0;
for(int i=0;i<s.length();i++){
if(s[i]=='-')continue;
if(s[i]<='9' && s[i]>=0) sum=sum*base+s[i]-'0';
else sum=sum*base+s[i]-'A'+10;
}
while(sum){
tmp=sum%ans;
sum=sum/ans;
if(tmp>=0 && tmp<=9)tmp=tmp+'0';
else tmp=tmp-10+'A';
res=tmp+res;
}
if(res.length()==0)res='0'+res;
if(s[0]=='-')res='-'+res;
return res;
}
int main()
{
string s;
int base,ans;
while(cin>>s>>base>>ans){
s=transform(s,base,ans);
if(s.length()<=7){
for(int i=1;i<=7-s.length();i++)
cout<<" ";
cout<<s<<endl;
}
else cout<<" ERROR"<<endl;
}
return 0;
}