比赛 普及组2016模拟练习4 评测结果 AAAAAAAAAA
题目名称 火星上的加法运算 最终得分 100
用户昵称 cdcq 运行时间 0.002 s
代码语言 C++ 内存使用 0.32 MiB
提交时间 2016-11-17 20:44:20
显示代码纯文本
//3_108_120_116
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
using namespace std;
int read(){int z=0,mark=1;  char ch=getchar();
	while(ch<'0'||ch>'9'){if(ch=='-')mark=-1;  ch=getchar();}
	while(ch>='0'&&ch<='9'){z=(z<<3)+(z<<1)+ch-'0';  ch=getchar();}
	return z*mark;
}
int n;
char sa[210],sb[210];  int la=0,lb=0;
int a[210],b[210];
int c[210];
int main(){
    //freopen("ddd.in","r",stdin);
    freopen("madition.in","r",stdin);
    freopen("madition.out","w",stdout);
    cin>>n;//mdzz,又忘了高精度要倒着输了
    scanf("%s%s",sa+1,sb+1);  la=strlen(sa+1),lb=strlen(sb+1);
    for(int i=la;i>=1;i--)  a[la-i+1]=(sa[i] <= '9') ? sa[i]-'0' : sa[i]-'a'+10;
    for(int i=lb;i>=1;i--)  b[lb-i+1]=(sb[i] <= '9') ? sb[i]-'0' : sb[i]-'a'+10;
    int lc=max(la,lb);
    for(int i=1;i<=lc;i++){
          c[i]+=a[i]+b[i];
          c[i+1]+=c[i]/n,c[i]%=n;
    }
    while(c[lc+1])  lc++,c[lc+1]+=c[lc]/n,c[lc]%=n;
    for(int i=lc;i>=1;i--){
        if(c[i]<10)  printf("%d",c[i]);
        else  printf("%c",c[i]-10+'a');
    }
    cout<<endl;
    return 0;
}