100位的大数互相加减
#include <iostream>
#include<string.h>
using namespace std;
char a[100],b[100];
int ax[100],bx[100];
int ma;
int ad(int max,int ax[],int bx[])
{
for (int i=0; i<max ; i++) {
ax[i]=ax[i]+bx[i];
if (ax[i]>=10) {
ax[i]-=10;
ax[i+1]++;
}
}
return 0;
}
int main()
{
int i,j;
cin>>a>>b;
int la=strlen(a);
int lb=strlen(b);
memset(ax, 0, sizeof(ax));
memset(bx, 0, sizeof(bx));
// ********倒过来
for(j = 0, i = strlen(a)- 1 ; i >= 0 ; i --)
ax[j++] = a[i] - '0';
for(j = 0 , i = lb - 1 ; i >= 0 ; i --)
ax[j++] = b[i] - '0';
ma=la>lb?la:lb;
ad(ma, ax, bx);
for( i = 100 ; i >= 0; i -- )
{
if( ax[i] != 0 )break;
}
//倒过来
for(;i>=0;i--)
{
cout<<ax[i];
}
}