忽然发现自己好久没有打高精度了,这东西真的贼恶心。
计时打了个A+B的交洛谷
06:41.9还可以
交上去还WA了一个点
先写进来,再去接着计时debug
#include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
#define al a[0]
#define bl b[0]
using namespace std;
string s1,s2;
int a[505],b[505];
int main()
{
cin>>s1>>s2;
al=s1.length();
for(int i=1;i<=al;i++)
a[i]=s1[al-i]-'0';
bl=s2.length();
for(int i=1;i<=bl;i++)
b[i]=s2[bl-i]-'0';
int k=max(al,bl);
for(int i=1;i<=k;i++)
a[i]+=b[i],a[i+1]+=a[i]/10,a[i]%=10;
if(a[k+1])
al=++k;
for(int i=al;i;i--)
putchar(a[i]+'0');
return 0;
}
压行选手(x 今天也很努力呢
debug完成!
总用时08:26.4
错的点是没有考虑到不进位时a的位数的更新
#include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
#define al a[0]
#define bl b[0]
using namespace std;
string s1,s2;
int a[505],b[505];
int main()
{
cin>>s1>>s2;
al=s1.length();
for(int i=1;i<=al;i++)
a[i]=s1[al-i]-'0';
bl=s2.length();
for(int i=1;i<=bl;i++)
b[i]=s2[bl-i]-'0';
int k=max(al,bl);
for(int i=1;i<=k;i++)
a[i]+=b[i],a[i+1]+=a[i]/10,a[i]%=10;
al=k;
if(a[al+1])
al++;
for(int i=al;i;i--)
putchar(a[i]+'0');
return 0;
}