高精度加法
题目描述
高精度加法。输入两个正整数,求它们的和。
输入
两行,每行为一个高精度整数(非负数,长度不超过255)
输出
一行,相加的结果。
#include<stdio.h>
#include<string.h>
using namespace std;
char str1[265];
char str2[265];
int d1[265];
int d2[265];
int result[500];
int size=0;
int main()
{
scanf("%s",str1);
scanf("%s",str2);
int L1=strlen(str1);
int L2=strlen(str2);
//首先倒叙高精度数,因为执行四则元算时候是从数字的低位开始运算的
//但是显示在计算机屏幕上的时候 第一位是最高位 所以在存储高精度数的时候 我们需要倒置高精度数
for(int i=L1-1;i>-1;i--)
{
d1[L1-1-i]=str1[i]-'0';
}
for(int i=L2-1;i>-1;i--)
{
d2[L2-1-i]=str2[i]-'0';
}
int c=0;
int temp=0;
//运算循环的结束条件是加法特有的
for(int i=0;i<L1||i<L2;i++)
{
temp=d1[i]+d2[i]+c;
c=temp/10;
result[size++]=temp%10;
}
//处理剩余余数是必须要有的 这是一个考点
if(c!=0)
{
result[size++]=c;
}
for(int i=size-1;i>-1;i--)
{
printf("%d",result[i]);
}
}