向量解法
数制转换
http://www.nowcoder.com/questionTerminal/8ef02ef8571b417d8c311a87861f7a03
#include<iostream> #include<cstdio> #include<string> #include<cmath> #include<vector> using namespace std; int trans(char x){ if(x>='0'&&x<='9') return x-'0'; else if(x>='a'&&x<='f') return x-'a'+10; else return x-'A'+10; return 0; } int main(){ string n; int a,b; while(cin>>a>>n>>b){ long long tmp=0; vector<int> myvector; for(int i=0;i<n.length();i++){ tmp+=trans(n[i])*pow(a,n.length()-i-1); } while(tmp){ myvector.push_back(tmp%b); tmp/=b; } for(int i=myvector.size()-1;i>=0;i--){ if(myvector[i]>=0&&myvector[i]<=9) cout<<myvector[i]; else cout<<(char)(myvector[i]-10+'A'); } cout<<endl; } return 0; }