Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
167610 | WSLYDG | 进制数加法 | C++ | 通过 | 100 | 1 MS | 256 KB | 563 | 2024-08-19 17:02:18 |
#include<bits/stdc++.h> int n,a2[301],b2[301],t,c[301],i; char a[301],b[301]; int change(char c) { if(c>='0'&&c<='9')return c-48; else if(c=='A')return 10; else if(c=='B')return 11; } int main() { scanf("%d %s %s",&n,a,b); t=std::max(strlen(a),strlen(b)); for(i=0;i<strlen(a);i++)a2[strlen(a)-i]=change(a[i]); for(i=0;i<strlen(b);i++)b2[strlen(b)-i]=change(b[i]); for(i=1;i<=t;i++) { c[i]+=(a2[i]+b2[i]); c[i+1]+=c[i]/n; c[i]%=n; } bool ch; for(i=(t+1);i>0;i--) { if(i==(t+1)&&c[i]==0)continue; printf("%d",c[i]); } return 0; }