为啥不可以大佬看看

P1601 A+B Problem(高精)

@[songshihao666888](/user/871868) cin读入字符串自动忽略空格,所以你的循环应该改为`for (i = 0;i<x.size(); i++)` 另外指出你代码可能存在的问题: - y.size() 可能小于 x.size(),导致你直接使用字符串进行加法的时候访问不到 y[i] 导致 RE - 进位部分放到了循环外边,可能导致结果出现误差,例如 15+15 可能会等于 110 - 初始时 res 字符串为空,同样可能无法访问到 res[i]
by olegekei @ 2023-02-08 16:15:51


```cpp #include <bits/stdc++.h> using namespace std; int a[520],b[520],c[520]; int main(){ int la, lb, lc = 1, x = 0; string al, bl; cin>>al>>bl; la = al.size(); lb = bl.size(); for (int i = 0;i<la;a[la-i] = al[i]-48,i++); for (int i = 0;i<lb;b[lb-i] = bl[i]-48,i++); while (lc<=la||lc<=lb){ c[lc] = a[lc]+b[lc]+x; x = c[lc]/10; c[lc]%=10; lc++; } c[lc] = x; while (c[lc]==0&&lc>1) lc--; for (int i = lc;i;i--) cout<<c[i]; return 0; } ```
by Tx1234567 @ 2023-02-11 13:40:25


```cpp #include<bits/stdc++.h> using namespace std; char x[505],y[505]; int a[505],b[505]; int main(){ cin>>x>>y; a[0]=strlen(x); b[0]=strlen(y); for(int i=1;i<=a[0];i++) a[i]=x[a[0]-i]-'0'; for(int i=1;i<=b[0];i++) b[i]=y[b[0]-i]-'0'; a[0]=max(a[0],b[0]); for (int i=1;i<=a[0];i++){ a[i]=a[i]+b[i]; a[i+1]+=a[i]/10; a[i]=a[i]%10; } if(a[a[0]+1]!=0) a[0]++; for(int i=a[0];i>0;i--){ cout<<a[i]; } return 0; } ```
by limeng911 @ 2023-02-14 21:20:06


|