rt为了复习cspj在P1601 A+B Problem(高精)进行练习高精代码是这样的
#include<bits/stdc++.h>
using namespace std;
char aa[1001],bb[1001];
int a[1001],b[1001],c[1001];
int la,lb,lc;
int main()
{
cin.getline(aa,1001);
cin.getline(bb,1001);
// cin>>aa>>bb;
la=strlen(aa),lb=strlen(bb);
for(int i=0;i<la;i++)
a[la-i]=aa[i]-'0';
for(int i=0;i<lb;i++)
b[lb-i]=bb[i]-'0';
lc=max(lb,la);
for(int i=1;i<=lc;i++)
{
c[i]+=a[i]+b[i];
c[i+1]=c[i]/10;
c[i]%=10;
}
if(c[lc+1]) lc++;
while(c[lc]==0&&lc>=1) lc--;
if(lc==0) cout<<0;
else
for(int i=lc;i>=1;i--)
cout<<c[i];
return 0;
}
但是错了,在洛谷的IDE上似乎无法运行,但是将8,9两行改为cin
#include<bits/stdc++.h>
using namespace std;
char aa[1001],bb[1001];
int a[1001],b[1001],c[1001];
int la,lb,lc;
int main()
{
// cin.getline(aa,1001);
// cin.getline(bb,1001);
cin>>aa>>bb;
la=strlen(aa),lb=strlen(bb);
for(int i=0;i<la;i++)
a[la-i]=aa[i]-'0';
for(int i=0;i<lb;i++)
b[lb-i]=bb[i]-'0';
lc=max(lb,la);
for(int i=1;i<=lc;i++)
{
c[i]+=a[i]+b[i];
c[i+1]=c[i]/10;
c[i]%=10;
}
if(c[lc+1]) lc++;
while(c[lc]==0&&lc>=1) lc--;
if(lc==0) cout<<0;
else
for(int i=lc;i>=1;i--)
cout<<c[i];
return 0;
}
即可过,不知为何,请教大佬