Run ID | 作者 | 问题 | 语言 | 测评结果 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|
21578 | teacher_lu | 进制计算器 | C++ | 解答错误 | 0 MS | 244 KB | 810 | 2023-07-01 12:28:48 |
#include<iostream> #include<vector> char ch[36]; int x; using namespace std; vector<int> add(vector<int> &A,vector<int> &B){ if(A.size()<B.size()) return add(B,A); vector<int> C; int t = 0; for(int i=0;i<A.size();i++){ t+=A[i]; if(i<B.size()) t+=B[i]; C.push_back(t%x); t/=x; } if(t) C.push_back(t); return C; } int main(){ for(int i = 0; i < 10; i++) ch[i] = i + '0'; for(int i = 0; i < 26; i++) { ch[i+10] = i + 'A'; //cout << ch[i] << " "; } string a,b; vector<int> A,B; cin>>x>>a>>b; for(int i=a.size()-1;i>=0;i--) A.push_back(a[i]-'0'); for(int i=b.size()-1;i>=0;i--) B.push_back(b[i]-'0'); auto c = add(A,B); for(int i=c.size()-1;i>=0;i--) cout<<ch[c[i]]; return 0; }