题目如下:
思路:
题目要求把一个数转化为十进制 再把十进制转化为n进制
一定注意==
输出:
#include<cstdio> #include<cmath> #include<iostream> #include<vector> #include<cctype> #include<algorithm> #include<map> using namespace std; int main(){ int n,sum=0; cin>>n; string s; cin>>s; int c; cin>>c; vector<int>m; vector<int>w; map<int,string> ans; ans[1] = "A"; ans[2]="B"; ans[3]="C"; ans[4]="D"; ans[5]="E"; ans[6]="F"; for(int i=0;s[i];i++) { if(s[i]>='A'&&s[i]<='F') m.push_back(s[i]-'A'+10); else m.push_back(s[i]-'0'); } // for(auto i:m) // cout<<i<<" "; int j=0; for(int i=m.size()-1;i>=0;i--){ sum+=m[i]*pow(n,j) ; //转化为十进制的数字 j++; } // cout<<sum<<endl; //转化为二进制的数字 while(sum) { w.push_back(sum%c); sum/=c; } reverse(w.begin(),w.end()); for(auto i:w){ if(i>=10) cout<<ans[i-9]; else cout<<i; } return 0; }