liyuhangyyds @ 2021-08-26 19:53:17
#include<bits/stdc++.h>
using namespace std;
char a[10000],b[10000];
int c[10000],d[10000],ans[10000];
int main()
{
int i,j=0,k=0,la,lb,x=0;
cin>>a>>b;
la=strlen(a);
lb=strlen(b);
for(i=0;i<la;i++)
c[la-1-i]=a[i]-'0';
for(i=0;i<lb;i++)
d[lb-1-i]=b[i]-'0';
i=0;
while(i<=la||i<=lb){
ans[i]=c[i]+d[i]+x;
x=ans[i]/10;
ans[i]=ans[i]%10;
i++;
}
if(x>0)cout<<x;
for(j=i;j>=0;j--){
if(ans[j]!=0)k=1;
if(k==1)cout<<ans[j];
}
}
突发奇想用高精度写了一下为什么挂了2个点
by vectorli1 @ 2021-08-26 19:57:20
负数
by yuchenren @ 2021-08-26 19:58:35
人生苦短,我用 Python。
by 一SakuRa @ 2021-08-26 20:04:15
@李宇航
负数
by BlackPanda @ 2021-09-10 20:08:58
还有负数
by queen_street @ 2021-09-19 19:05:21
@李宇航 你为啥不用__int128写涅?
#include<bits/stdc++.h>
using namespace std;
__int128_t n,m;
inline __uint128_t read()
{
__int128_t x=0,f=1;
char ch=getchar();
while(ch<'0' || ch>'9')
{
if(ch=='-')
{
f=-1;
}
ch=getchar();
}
while(ch>='0' && ch<='9')
{
x=x*10+ch-'0';
ch=getchar();
}
return x*f;
}
inline void write(__int128_t x)
{
if(x<0)
{
putchar('-');
x=-x;
}
if(x>9)
{
write(x/10);
}
putchar(x%10+'0');
}
int main()
{
int i,j;
n=read();
m=read();
write(n+m);
return 0;
}
这个定义方式可以表示-2是¹²⁸到2是¹²⁸的