StarryFuture @ 2021-02-17 22:20:43
#include<iostream>
#include<cstring>
#include<cstdio>
#include<cmath>
using namespace std;
int main()
{
char a1[501],b1[501];int a[501],b[501],c[1001],x=0;
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
memset(c,0,sizeof(c));
gets(a1);gets(b1);
for(int i=0;i<strlen(a1);i++)
a[strlen(a1)-i]=a1[i]-'0';
for(int i=0;i<strlen(b1);i++)
b[strlen(b1)-i]=b1[i]-'0';
int i=1;
while(i<=strlen(a1)||i<=strlen(b1))
{
c[i]=a[i]+b[i]+x;
x=c[i]/10;
c[i]=c[i]%10;
i++;
}
c[i]=x;
while(c[i]==0)i--;
int c1=i;
for(int i=c1;i>=1;i--)
cout<<c[i];
return 0;
}
为什么!!!为什么!!!为什么!!!为什么!!!为什么!!!
by Silence_water @ 2021-02-17 22:22:47
数组开小了。 题目说了
每个数字不超过
10^{2000} ,需用高精。
by Silence_water @ 2021-02-17 22:23:02
@奇迹boy
by Silence_water @ 2021-02-17 22:25:49
而且您这在IDE中样例输出不是 -9-3
吗,咋就对了。。。少用 gets
。
by StarryFuture @ 2021-02-17 22:56:33
@OIer陈奕莱 看错了这是高精度加法的程序,我提交到了乘法里面。