高精度加法
#include<stdio.h>
#include<iostream>
#include<memory.h>
#include<cstring>
#include<algorithm>
using namespace std;
int main(int argc, char const *argv[])
{
char a1[100], b1[100];
int a[100], b[100], c[100];
int lena1, lenb1;
memset(a, 0, sizeof(a));
memset(b, 0, sizeof(b));
memset(c, 0, sizeof(c));
gets(a1);
gets(b1);
//scanf("%s%s", &a1, &b1);
lena1 = strlen(a1);
lenb1 = strlen(b1);
for(int i = 0; i < lena1; ++i) //将char转化成int,数组倒置
a[lena1-i-1] = (int)a1[i] - '0';
for(int i = 0; i < lenb1; ++i)
b[lenb1-i-1] = (int)b1[i] - '0';
int lenc = 0, x = 0; // x记录进位
while(lenc <= lena1 || lenc <= lenb1)
{
c[lenc] = a[lenc] + b[lenc] + x;
x = c[lenc]/10;
c[lenc] %= 10;
lenc++;
}
c[lenc] = x;
if(c[lenc] == 0)
{
lenc--; //判断前导0
}
for(int i = lenc-1; i >= 0; --i)
printf("%d",c[i]);
ret