首页 > 代码库 > 3116 高精度练习之加法
3116 高精度练习之加法
3116 高精度练习之加法
时间限制: 1 s
空间限制: 128000 KB
题目等级 : 黄金 Gold
题目描述 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 高精度练习之加法
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。