刚学高精,20分求助……

P1601 A+B Problem(高精)

把输出的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


|