Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
167883 | C班詹皓杰 | 进制数加法 | C++ | 通过 | 100 | 0 MS | 268 KB | 972 | 2024-08-19 20:04:16 |
#include<iostream> using namespace std; int a[10000100],b[10000100],c[10000100]; char change(int n){ if(n <= 9){ return n+'0'; }else{ return 'A'+n-10; } } int change(char c){ if('A'<=c && c<='Z'){ return c-'A'+10; }else{ return c-'0'; } } int main(){ int base,len,lena,lenb; string s1,s2; cin>>base>>s1>>s2; lena = s1.size();lenb = s2.size(); for(int i = 0; i < lena; i++){ a[lena-i-1] = change(s1[i]); } for(int i = 0; i < lenb; i++){ b[lenb-i-1] = change(s2[i]); } len = max(lena,lenb); for(int i = 0; i < len; i++){ c[i] = a[i]+b[i]; } for(int i = 0; i < len; i++){ if(c[i] >= base){ c[i+1] += c[i]/base; c[i] %= base; } } if(c[len]){ len++; } for(int i = len-1; i >= 0; i--){ cout<<change(c[i]); } return 0; }