#include <iostream>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
using namespace std;
char a[1010],b[1010];
int ta[1010],tb[1010];
int main()
{
int l2,l1,l;
while(scanf("%s%s",a,b)!=EOF)
{
memset(ta,0,sizeof(ta));
memset(tb,0,sizeof(tb));
l1=strlen(a);
l2=strlen(b);
if(l1<l2) l=l2;
else l=l1;
for(int i=0;i<l;i++)
{
if(l1-1>=0)
{
ta[i]=a[l1-1]-'0';
l1--;
}
else ta[i]=0;
if(l2-1>=0)
{
tb[i]=b[l2-1]-'0';
l2--;
}
else tb[i]=0;
}
int t;
for(int i=0;i<l;i++)
{
t=ta[i]+tb[i];
if(t>=10)
{
ta[i]=t-10;
ta[i+1]++;
}
else ta[i]=t;
}
int flag=0;
for(int i=l;i>=0;i--)
{
if(flag||ta[i])
{
flag=1;
printf("%d",ta[i]);
}
}
if(!flag) printf("0");//用于解决只有0相加的状况
printf("\n"); }
return 0;
}Integer Inquiry
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <algorithm>
using namespace std;
int main()
{
int l1;
char a[1001];
int b[1001];
memset(b,0,sizeof(b));
while(scanf("%s",a)!=EOF)
{
if(a[0]=='0') break;
l1=strlen(a);
int j=0;
for(int i=l1-1; i>=0; i--)
{
b[j]=b[j]+a[i]-'0';
j++;
}
}
int t;
for(int i=0; i<1001; i++)
{
t=b[i];
if(b[i]>9)
{
b[i]=t%10;
b[i+1]=b[i+1]+t/10;
}
else b[i]=t;
}
int flag=0;
for(int i=1001-1; i>=0; i--)
{
if (flag || b[i])
{
flag = 1;
printf("%d",b[i]);
}
}
if (!flag) printf("0");
printf("\n");
return 0;
}
Product
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <algorithm>
using namespace std;
char str1[300],str2[300];
int d[300],f[300],c[601];
int l1,l2,l,w,e;
void init()
{
memset(c,0,sizeof(c));
memset(d,0,sizeof(d));
memset(f,0,sizeof(f));
}
int main()
{
while(scanf("%s",str1)!=EOF)
{
init();
scanf("%s",str2);
l1=strlen(str1);
l2=strlen(str2);
l=max(l1,l2);
w=l1;
e=l2;
for(int i=0; i<l; i++)
{
if(l1-1>=0)
{
d[i]=str1[l1-1]-'0';
l1--;
}
else d[i]=0;
if(l2-1>=0)
{
f[i]=str2[l2-1]-'0';
l2--;
}
else f[i]=0;
}
for(int i=0; i<w; i++)
{
for(int j=0; j<e; j++)
{
c[i+j]=c[i+j]+d[i]*f[j];
}
}
for(int i=0; i<600; i++)
{
if(c[i]>=10)
{
c[i+1]+=c[i]/10;
c[i]=c[i]%10;
}
}
int flag=0;
for(int i=600; i>=0; i--)
{
if(flag||c[i])
{
flag=1;
printf("%d",c[i]);
}
}
if(flag==0) printf("0");
printf("\n");
}
return 0;
}