因为这题的数据比较水,所以过了。但是ybt上的板子没过。
代码如下:
#include<cstdio>
#include<cstring>
const int MAXN=503;
char a[MAXN],b[MAXN],ans_jia[MAXN];
void _jia(char a[],char b[]){
//初始化答案数组
for(int i=0;i<MAXN;i++) ans_jia[i]=0;
//声明变量与数组
int la=strlen(a),
lb=strlen(b),
lc=(la>lb?la:lb);
int _a[lc],_b[lc],_c[lc+1];
//初始化
_c[lc]=0;
for(int i=0;i<lc;i++)
_c[i]=0,
_a[i]=(i<la?a[la-i-1]-'0':0),
_b[i]=(i<lb?b[lb-i-1]-'0':0);
//模拟竖式运算
for(int i=0;i<lc;i++)
_c[i+1]=(_c[i]+_a[i]+_b[i])/10,
_c [i] =(_c[i]+_a[i]+_b[i])%10;
//这一行,处理位数上升情况
if(!_c[lc]) lc--;//不上升则共有lc位(lc-1~0)
//输出答案至ans_jia[]
for(int i=0;i<=lc;i++)
ans_jia[i]=_c[lc-i]+'0';
return;
}
int main(){
scanf("%s%s",a,b);
_jia(a,b);
printf("%s",ans_jia);
return 0;
}
十分怪异。
以及这是我第一次尝试从0开始计数,可能哪里搞乱了的,但是我完全找不到。。。