http://ac.jobdu.com/problem.php?cid=1040&pid=59
- 题目描述:
-
实现一个加法器,使其能够输出a+b的值。
- 输入:
-
输入包括两个数a和b,其中a和b的位数不超过1000位。
- 输出:
-
可能有多组测试数据,对于每组数据,
输出a+b的值。
- 样例输入:
-
2 6 10000000000000000000 10000000000000000000000000000000
- 样例输出:
-
8 10000000000010000000000000000000
// 题目60:a+b.cpp: 主项目文件。
#include "stdafx.h"
#include<cstdio>
#include<cstring>
#include<string>
#include<algorithm>
#include<functional>
#include<iostream>
#include<vector>
#include<queue>
#include<stack>
#include<map>
#include<set>
using namespace std;
char a[1003],b[1003];
void Sum(char *a,char *b)
{
char c[1001],d[1001];
memset(c,'0',sizeof(c));
memset(d,'0',sizeof(d));
int l1=strlen(a),l2=strlen(b),t,i;
t=l1>l2?l1:l2;
for(i=0;i<l1;i++)
c[i]=a[l1-1-i];
for(i=0;i<l2;i++)
d[i]=b[l2-1-i];
for(i=0;i<t;i++)
{
c[i]+=d[i]-'0';
if(c[i]>9)
c[i+1]+=(c[i]-'0')/10;
c[i]=(c[i]-'0')%10+'0';
}
if(c[t]!='0')
t++;
for(i=t-1;i>=0;i--)
printf("%c",c[i]);
printf("\n");
}
int main()
{
///////////////////////////////////
//freopen("in.txt","r",stdin);
//freopen("out.txt","w",stdout);
///////////////////////////////////
int n;
while(scanf("%s%s",a,b)!=EOF)
{
Sum(a,b);
}
return 0;
}
浙公网安备 33010602011771号