- 题目1198:a+b
时间限制:1 秒
内存限制:32 兆
特殊判题:否
提交:9007
解决:3130
- 题目描述:
实现一个加法器,使其能够输出a+b的值。
- 输入:
输入包括两个数a和b,其中a和b的位数不超过1000位。
- 输出:
可能有多组测试数据,对于每组数据,
输出a+b的值。
- 样例输入:
2 610000000000000000000 10000000000000000000000000000000
- 样例输出:
810000000000010000000000000000000
- 来源:
- 2010年华中科技大学计算机研究生机试真题
代码:这是一个典型的大数运算加法实现
C代码:
#include "stdio.h"
#include "math.h"
#include "string.h"
#define max 1001
#define Max 2002
void add(char a[],char b[],intlen) //加法实现函数
{
intc[Max],i=0,j=0,k; //此处用int类型的c[Max]来存储结果
for(j=0;j
{
c[j]=0;
}
for(i=0;i
{
c[i]+=a[i]-48+b[i]-48; //'0'的ascll码是48
if(c[i]>=10)
{
c[i]-=10;
c[i+1]+=1;
}
}
if(c[len]!=0)
len++;
for(k=len-1;k>=0;k--)
{
printf("%d",c[k]);
}
printf("\n");
}
int main()
{
chara[max],b[max],a1[max],b1[max]; //以char类型的数组来保存输入
while(scanf("%s%s",&a,&b)!=EOF)
{
int len;
int len1=strlen(a);
int len2=strlen(b);