3号点错了

P1601 A+B Problem(高精)

@[BensonQAQ](/user/284066) 貌似你最后的进位没有输出?
by w23c3c3 @ 2020-10-21 20:30:50


@[BensonQAQ](/user/284066) 输入: ``` 1 9 ``` 输出: ``` 10 ``` 你的输出: ``` 0 ```
by Implicit @ 2020-10-21 20:31:12


@[LoveMC](/user/325613) 所以呢
by BensonQAQ @ 2020-10-21 20:38:52


@[w23c3c3](/user/109942) 输出了 不知道为什么输出0
by BensonQAQ @ 2020-10-21 20:40:10


@[BensonQAQ](/user/284066) ```cpp #include<iostream> #include<cstring> #include<cmath> using namespace std; string a,b; char ja[501],jb[501],ds[502]; int la,lb,jag,jbg,dsg,jw,l,ls,g; int main() { memset(ja,0,sizeof(ja)); memset(jb,0,sizeof(jb)); cin>>a>>b; la=a.size(); lb=b.size(); int i; for(i=la-1;i>=0;i--) ja[la-i]=a[i]; for(int i=lb-1;i>=0;i--) jb[lb-i]=b[i]; l=max(la,lb); for(i=1;i<=l;i++) { if(ja[i]>='0'&&ja[i]<='9') jag=ja[i]-'0'; else jag=0; if(jb[i]>='0'&&jb[i]<='9') jbg=jb[i]-'0'; else jbg=0; dsg=jag+jbg+jw; jw=0; if(dsg>=10) { jw++; g=dsg%10; ds[i]=g+'0'; } else { g=dsg%10; ds[i]=g+'0'; } } ++l; ds[l]=jw+'0'; // 加了! for(i=l;i>=1;i--) cout<<ds[i]; return 0; } ``` 改成这样就行了
by Implicit @ 2020-10-21 20:46:22


@[LoveMC](/user/325613) 你提交试试 变成了 WA WA AC WA WA
by BensonQAQ @ 2020-10-21 21:03:03


@[BensonQAQ](/user/284066) ```cpp #include<iostream> #include<cstring> #include<cmath> using namespace std; string a,b; char ja[501],jb[501],ds[502]; int la,lb,jag,jbg,dsg,jw,l,ls,g; int main() { memset(ja,0,sizeof(ja)); memset(jb,0,sizeof(jb)); cin>>a>>b; la=a.size(); lb=b.size(); int i; for(i=la-1;i>=0;i--) ja[la-i]=a[i]; for(int i=lb-1;i>=0;i--) jb[lb-i]=b[i]; l=max(la,lb); for(i=1;i<=l;i++) { if(ja[i]>='0'&&ja[i]<='9') jag=ja[i]-'0'; else jag=0; if(jb[i]>='0'&&jb[i]<='9') jbg=jb[i]-'0'; else jbg=0; dsg=jag+jbg+jw; jw=0; if(dsg>=10) { jw++; g=dsg%10; ds[i]=g+'0'; } else { g=dsg%10; ds[i]=g+'0'; } } ++l; ds[l]=jw+'0'; // 进位! while(ds[l]=='0'&&l>1) --l; // 前导零! for(i=l;i>=1;i--) cout<<ds[i]; return 0; } ```
by Implicit @ 2020-10-21 21:37:44


|