3116 高精度练习之加法
Posted ioioioioioio
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了3116 高精度练习之加法相关的知识,希望对你有一定的参考价值。
题目描述 Description
给出两个正整数A和B,计算A+B的值。保证A和B的位数不超过500位。
输入描述 Input Description
读入两个用空格隔开的正整数
输出描述 Output Description
输出A+B的值
样例输入 Sample Input
3 12
样例输出 Sample Output
15
数据范围及提示 Data Size & Hint
两个正整数的位数不超过500位
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
char m[1001],n[1001];
int a[1001],b[1001],c[1001];
int main()
{
scanf("%s",&m);
scanf("%s",&n);
int lm=strlen(m);
int ln=strlen(n);
for(int i=0;i<lm;i++)
{
a[i]=m[lm-i-1]-‘0‘;
}
for(int i=0;i<ln;i++)
{
b[i]=n[ln-i-1]-‘0‘;
}
int x=0;
int lc=0;
while(lc<=lm||lc<=ln)
{
c[lc]=a[lc]+b[lc]+x;
x=c[lc]/10;
c[lc]%=10;
lc++;
}
c[lc]=x;
while(c[lc]==0&&lc>=1)
{
lc--;
}
for(int i=lc;i>=0;i--)
{
cout<<c[i];
}
}
以上是关于3116 高精度练习之加法的主要内容,如果未能解决你的问题,请参考以下文章