把输出的i=max换成i=max-1。
by zjhzs666 @ 2023-03-18 11:38:11
@[zjhzs666](/user/866692) 试过了,不管用
by wzh0910 @ 2023-03-18 11:51:38
现在改成这样了,但是还是过不了```
#include<stdio.h>
char a[105],b[105],c[105];
int ad[105],bd[105],cd[105];
int art(char t[])
{
int l=0;
for(int i=0;t[i]!='\0';i++)
{
l++;
}
return l;
}
int main()
{
scanf("%s%s",a,b);
int al=art(a),bl=art(b);
for(int i=0;i<al;i++)
{
ad[i]=a[i]-'0';
}
for(int i=0;i<bl;i++)
{
bd[i]=b[i]-'0';
}
// printf("%d %d\n",al,bl);
for(int i=0;i<al/2;i++)
{
int q;
q=ad[i];
ad[i]=ad[al-1-i];
ad[al-1-i]=q;
}
for(int i=0;i<bl/2;i++)
{
int q;
q=bd[i];
bd[i]=bd[bl-1-i];
bd[bl-1-i]=q;
}
/* for(int i=0;i<=al;i++)
{
printf("%d",ad[i]);
}
printf("\n");
for(int i=0;i<=bl;i++)
{
printf("%d",bd[i]);
}
printf("\n");*/
int max;
if(al>bl)max=al;
else max=bl;
int x=0;
for(int i=0;i<=max;i++)
{
cd[i]=(ad[i]+bd[i]+x)%10;
x=(ad[i]+bd[i]+x)/10;
// printf("%d",cd[i]);
}
//printf("\n");
max*=cd[max];
for(int i=max;i>=0;i--)
{
printf("%d",cd[i]);
}
return 0;
}
```
by wzh0910 @ 2023-03-18 11:52:35
```cpp
#include<bits/stdc++.h>
#define maxn 5200
using namespace std;
int a[maxn],b[maxn],c[maxn];
string A,B;
int i,j;
int main(){
cin>>A>>B;
int len=max(A.length(),B.length());
for(i=A.length()-1,j=1;i>=0;i--,j++){
a[j]=A[i]-'0';
}for(i=B.length()-1,j=1;i>=0;i--,j++){
b[j]=B[i]-'0';
}
for(i=1;i<=len;i++){
c[i]+=a[i]+b[i];
c[i+1]=c[i]/10;
c[i]%=10;
}
if(c[len+1])
len++;
for(i=len;i>=1;i--)
cout<<c[i];
return 0;
}
```
by Yang_OIer @ 2023-03-18 11:52:58
已AC,谢谢
by wzh0910 @ 2023-03-18 11:58:50