65,187
社区成员




#include <iostream>
#include <cstdio>
#include <cstdlib>
using namespace std;
const size_t BufferSize = 1024;
const size_t BufferLen = BufferSize-1;
char szFirst[BufferSize]={0};
char szSecond[BufferSize]={0};
char szResult[BufferSize]={0};
char* pResult=szResult+BufferLen;
const char* Sum(const string& sFirst,const string& sSecond)
{
int iCarry=0;
int iSum;
int idxFirst=sFirst.size()-1;
int idxSecond=sSecond.size()-1;
char* pResult=szResult+BufferLen;
int iFirst;
int iSecond;
for(;idxFirst>=0||idxSecond>=0;)
{
iFirst = idxFirst>=0?sFirst[idxFirst]-'0':0;
iSecond = idxSecond>=0?sSecond[idxSecond]-'0':0;
iSum = iFirst+iSecond+iCarry;
iCarry = iSum/10;
*pResult = char(iSum%10) + '0';
--pResult;
--idxFirst;
--idxSecond;
}
if(iCarry)
{
*pResult = iCarry+'0';
}
else
{
++pResult;
}
return pResult;
}
int main()
{
int a;
cin >> a;
for(int i=1;i<=a;++i)
{
cin >> szFirst;
cin >> szSecond;
printf("Case %d: \n",i);
printf("%s + %s = %s \n\n",szFirst,szSecond,Sum(szFirst,szSecond));
}
}
//Case 1:
//1 + 2 = 3
//
//Case 2:
//112233445566778899 + 998877665544332211 = 1111111111111111110
//
if(i != T-1)
printf("\n");
#include<stdio.h>
#include<string.h>
int main()
{
int T = 0;
int i,j,k,t,bf,f;
int x,y;
char a[1001], b[1001];
char c[1001];
scanf("%d", &T);
for(i = 0; i < T; ++i)
{
printf("Case %d:\n", i + 1);
f = 0;
scanf("%s %s", a, b);
printf("%s + %s = ", a, b);
j = strlen(a);
k = strlen(b);
j --;
k --;
bf = 0;
while(j >= 0 || k >= 0)
{
if(j < 0)
x = 0;
else
x = a[j--] - '0';
if(k < 0)
y = 0;
else
y = b[k--] - '0';
t = x + y + bf;
bf = 0;
if(t >= 10)
{
c[f++] = t - 10;
bf = 1;
}
else
c[f++] = t;
}
if(bf != 0)
c[f++] = 1;
for(f = f-1; f >= 0; --f)
printf("%d", c[f]);
printf("\n");
if(i != T-1)
printf("\n");
}
return 0;
}