本地测试没问题,但第3 、5例过不了,求助大佬!

P1601 A+B Problem(高精)

第三例: 11111111111111111111111111 9999999999999999999999999999999999 我的本地答案: 10000000011111111111111111111111110 本地计算出来是正确的,但是提交有错误 Wrong Answer.wrong answer On line 1 column 2, read 8, expected 0
by cccwwwzzz @ 2023-03-06 20:15:40


@[cccwwwzzz](/user/946249) 数组没有清零。本地和测评机不太一样,具体原理我不懂,但是解决方案 0. c=a+b 1. 在main函数外定义数组 2. 定义数组后memset清零
by xiaozengX @ 2023-03-06 20:20:55


``` #include<bits/stdc++.h> using namespace std; const int N=2000; int a[N],b[N],c[N]; string al,bl; int main(){ int a1,b1,c1=1,x=0; cin>>al>>bl; a1=al.size();b1=bl.size(); for(int i=0;i<=a1-1;i++) a[a1-i]=al[i]-48; for(int i=0;i<=b1-1;i++) b[b1-i]=bl[i]-48; while(c1<=a1||c1<=b1){ c[c1]=a[c1]+b[c1]+x; x=c[c1]/10; c[c1]%=10; c1++; } c[c1]=x; while(c[c1]==0&&c1>1) c1--; for(int i=c1;i>=1;i--) cout<<c[i]; return 0; } ```
by Seapeac @ 2023-03-06 20:37:56


@[xiaozengX](/user/321529) 多谢! 第1 亲测点有用 !
by cccwwwzzz @ 2023-03-06 21:03:20


```c #include<bits/stdc++.h> using namespace std; string a,b; int main() { cin>>a>>b; int x[10000]; int y[10000]; int c[20100]; for(int i =0; i<a.size(); i++) { x[i]=a[a.size()-1-i]-'0'; } for(int j =0; j<b.size(); j++) { y[j]=b[b.size()-1-j]-'0'; } int len = max(a.size(),b.size()); for(int n=0; n<len; n++) { c[n] +=x[n]+y[n]; if(c[n]>=10) { c[n+1] = c[n]/10; c[n]%=10; } } len +=1; while(c[len-1]==0&& len>1) { len--; } for(int i =len-1; i>=0; i--) { cout<<c[i]; } return 0; } ```
by Ironaaa @ 2023-03-13 11:18:40


|