Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
167742 | C班 黄一航 | 进制数加法 | C++ | 解答错误 | 0 | 1 MS | 264 KB | 787 | 2024-08-19 17:17:48 |
#include<bits/stdc++.h> using namespace std; int main(){ int n; int a[520],b[520],c[520]; cin >> n; string A,B; cin >> A >> B; int lena=A.size(),lenb=B.size(),len=max(lena,lenb); for(int i=0;i<lena;i++){ if(A[i]>='0'&&A[i]<='9') a[i]=A[i]-'0'; else a[i]=A[i]-55; } for(int i=0;i<lenb;i++){ if(B[i]>='0'&&B[i]<='9') b[i]=B[i]-'0'; else b[i]=B[i]-55; } for(int i=0;i<len;i++){ c[i]=a[i]+b[i]; } for(int i=len-2;i>=1;i--){ if(c[i]>=n){ c[i]+=c[i+1]/n; c[i-1]%=n; } } int head=0,tail=len; cout << endl; if(c[0]>=n){ c[0]%=n; cout << 1; } for(int i=tail;i>=0;i--){ if(c[i]==0) tail--; else break; } for(int i=head;i<=tail;i++){ if(c[i]<=10) cout << c[i]; else cout << char(c[i]+55); } return 0; }