#include <iostream> #include <cstring> #include <cstdio> using namespace std; char str1[10000002],str2[10000002],result[10000010]; short add[10000000]; void bignumadd(char str1[],char str2[],char result[]) { long k=0,i,j; long leng1 = strlen(str1); long leng2 = strlen(str2); memset(add,sizeof(add)); for(i=leng1-1,j=leng2-1;i>=0&&j>=0;i--,j--) //做加法操作 { add[k++] = (str1[i]-'0')+(str2[j]-'0'); } if(leng1>leng2) { for(j=i;j>=0;j--) add[k++] = str1[j]-'0'; } else { for(i=j;i>=0;i--) add[k++] = str2[i]-'0'; } for(i=0;i<k;i++)//该进位的进位 { if(add[i]>=10) { add[i+1] += (add[i]/10); add[i]%=10; } } long long l=0; if(add[k]>0)//最高位产生了进位 { for(i=k;i>=0;i--) { result[l++] = add[i]+'0'; } } else { for(i=k-1;i>=0;i--) { result[l++] = add[i]+'0'; } } result[l]='\0'; } int main() { scanf("%s%s",str1,str2); bignumadd(str1,str2,result); printf("%s\n",result); return 0; }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。