高精度加法题解

题目描述:

给你两个十进制数,数位最多有1000位,求他们的和

输入格式:

第一行输入一个整数

第二行输入一个整数

输出格式:

输出一个整数

样例输入:

12312312312142343254354354
4124354364565765456

样例输出:

12312316436496707820119810

约定:

A,B都是正数

解析:

高精度,顾名思义,它是有超高位数的。

而题目描述中,明确说明了最多有1000位,用int(9位)或long long(19位)都不行。

所以要用string。

string a,b,c;
cin>>a>>b;

而且需要计算字符串长度,并且反序存入一个int数组中。

int aa[1005],bb[1005],cc[1005];
int len1=a.size();
int len2=b.size();
int len=max(len1,len2)+1;
for(int i=0;i<len1;i++)
{
	aa[i]=a[len1-1-i]-'0';
}
for(int i=0;i<len2;i++)
{
	bb[i]=b[len2-1-i]-'0';
}

各位相加并统一进位(也可以一边加一边进位)。

for(int i=0;i<len;i++)
{
	cc[i]=aa[i]+bb[i];
}
for(int i=0;i<len;i++)
{
	cc[i+1]+=cc[i]/10;
	cc[i]%=10;
}

最后去零输出。

int l=0;
for(int i=len-1;i>=0;i--)
{
	if(l==0 && cc[i]==0)continue;
	l+=1;
	cout<<cc[i];
}

以上操作均在主函数里进行。

3 个赞

Python秒了

a=int(input())
b=int(input())
c=a+b
print(c)
3 个赞

java也能秒(大虚

2 个赞

python卖油精度限制,在python里这算道大水题

2 个赞

秒了就是秒了

2 个赞

不正当算法

2 个赞