情之所至,甘之如饴

n进制(n<=36)下的加法。

为什么n<=36呢?因为只有10个数字和26个字母。

这里一定要注意读题了,注意给定的数据范围。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <algorithm>
#include <cstring>
using namespace std;
const int maxn=3010;
char a[maxn],b[maxn];
int x[maxn],y[maxn],sum[maxn];
int bbb;
int main(){
cin>>bbb;
cin>>a>>b;
int l1=strlen(a),l2=strlen(b);
for(int i=0;i<l1;i++){
if(a[i]>='A' && a[i]<='Z') x[l1-i]=a[i]-55;
else x[l1-i]=a[i]-48;
}
for(int i=0;i<l2;i++){
if(b[i]>='A' && b[i]<='Z') y[l2-i]=b[i]-55;
else y[l2-i]=b[i]-48;
}
int l3=1,t=0;
while(l3<=l1 || l3<=l2){
sum[l3]=x[l3]+y[l3]+t;
t=sum[l3]/bbb;
sum[l3]%=bbb;
l3++;
}
sum[l3]=t;
if(sum[l3]==0) l3--;
for(int i=l3;i>=1;i--){
if(sum[i]>=10) cout<<char(sum[i]+55);
else cout<<sum[i];
}
return 0;
}



本站使用 Material-X 作为主题 , 总访问量为 次 。
载入天数...载入时分秒... 字数统计:726.4k