1046 计算高精度加法
时间限制:1000MS 代码长度限制:10KB
提交次数:4771 通过次数:1813
题型: 编程题 语言: G++;GCC
Description
由键盘输入两个位数很长的整数(一行一个,最多不超过80位),试计算并输出这两个数的和。
输入样例
1234567890123456789353534532453453453434534 987654321098765324534534534534532
输出样例
1234567891111111110452299856987987987969066
#include <stdio.h>
#include <string.h>
int main()
{
char m[80],n[80];
int i,k,len_m,len_n,max;
int a[80]={0},b[80]={0},c[81]={0};
scanf("%s",m);
len_m=strlen(m);
for(i=0;i<len_m;i++)
{
a[i]=m[len_m-1-i]-'0';
}
scanf("%s",n);
len_n=strlen(n);
for(i=0;i<len_n;i++)
{
b[i]=n[len_n-i-1]-'0';
}
if(len_m>len_n) max=len_m;
else max=len_n;
k=0;
for(i=0;i<max;i++)
{
c[i]=(a[i]+b[i]+k)%10;
k=(a[i]+b[i]+k)/10;
}
if(k!=0)
{max++;c[max-1]=k;} for(i=max-1;i>=0;i--)
{
printf("%d",c[i]);
}
return 0;
}