题解 | #高精度整数加法#
高精度整数加法
http://www.nowcoder.com/practice/49e772ab08994a96980f9618892e55b6
#include<stdio.h>
int add(char c1,char c2,int extra,char*str){
int ex=0,a=c1-'0',b=c2-'0',res=a+b+extra;
if(res>=10){
ex=1;
res-=10;
}
*str=res+'0';
return ex;
}
int main(){
char str1[10001],str2[10001],str[10001];
while(~scanf("%s%s",str1,str2)){
int i=0,j=0,k=0;
while(str1[i+1])i++;
while(str2[j+1])j++;
int ex=0;
while(i>-1||j>-1){
ex=add(i>-1?str1[i--]:'0',j>-1?str2[j--]:'0',ex,str+k);
k++;
}
if(ex)str[k++]='1';
while(--k)printf("%c",str[k]);
printf("%c\n",str[0]);
}
}