Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
168020 | B班余绮淇 | 进制数加法 | C++ | 通过 | 100 | 0 MS | 264 KB | 836 | 2024-08-19 21:51:28 |
#include <iostream> #include <cstring> #include <cmath> using namespace std; long long to10(int n,char x[]) { int len=strlen(x); long long s=0; long long y=1; for(int i=len-1;i>=0;i--) { int t; if(x[i]>='A'&&x[i]<='Z') { t=x[i]-'A'+10; } else if(x[i]>='a'&&x[i]<='z') { t=x[i]-'a'+10; } else { t=x[i]-'0'; } s+=t*y; y*=n; } return s; } int main() { int n; long long s; char a[10000],b[10000]; int c[10001]; int len=0; scanf("%d %s %s",&n,a,b); if(n>=37||n<2) { return 0; } s=to10(n,a)+to10(n,b); if(s==0) { cout<<0; return 0; } while(s>0) { c[len]=s%n; len++; s/=n; } for(int i=len-1;i>=0;i--) { if(c[i]>=10) { char d='A'+c[i]-10; cout<<d; } else { cout<<c[i]; } } return 0; }