球球,悬关

P1601 A+B Problem(高精)

@[lucy2012](/user/1252442) 有负数
by Huge_Brain @ 2024-02-21 14:39:10


@[Huge_Brain](/user/380639) ?能说详细一丢丢吗
by lucy2012 @ 2024-02-21 14:41:25


@[lucy2012](/user/1252442) 你这个高精加没有考虑到负数的情况
by tomxi @ 2024-02-21 14:46:30


@[tomxi](/user/929151) 高精度加法,相当于 a+b problem,不用考虑负数。 题干不是这样的嘛
by ilibilib @ 2024-02-21 14:48:03


@[ilibilib](/user/1039659) 额好像是这样的我好久没看题了
by tomxi @ 2024-02-21 14:48:44


@[ilibilib](/user/1039659) @[tomxi](/user/929151) @[Huge_Brain](/user/380639) 没法输出教教我
by lucy2012 @ 2024-02-21 14:50:13


上代码@[lucy2012](/user/1252442) ```cpp #include<bits/stdc++.h> using namespace std; int a[10000],b[10000],c[10000]; int main(){ string as,bs; int la,lb,lc,i; cin>>as>>bs; la=as.size();lb=bs.size(); for(int i=1;i<=la;i++) a[i]=as[la-i]-'0'; for(int i=1;i<=lb;i++) b[i]=bs[lb-i]-'0'; i=1; memset(c,0,sizeof(c)); while(i<=la||i<=lb) { c[i]+=a[i]+b[i]; c[i+1]+=c[i]/10; c[i]%=10; i++; } if(c[i]>0) lc=i; else lc=i-1; for(int i=lc;i>=1;i--)cout<<c[i]; return 0; } `````` 求关
by 2023hkm @ 2024-02-21 14:51:17


我把我代码加了注释了要不你看看我的? ```cpp #include<bits/stdc++.h> using namespace std; const int N = 100010; int a[N],b[N],c[N]; int main(){ string s1, s2; cin >> s1 >> s2; int lena=s1.size(); int lenb=s2.size(); int lenc=max(lena,lenb);//倒序存储 for(int i=1; i<=lena; i++) a[i]=s1[lena-i]-'0'; for(int i=1; i<=lenb; i++) b[i]=s2[lenb-i]-'0'; //从低位向高位累加 for(int i=1; i<=lenc; i++){ c[i]+=a[i]+b[i]; //加上次的进位 c[i+1]=c[i]/10; //进位 c[i]%=10; //存余数 } if(c[lenc+1]>0) lenc++; //处理最高进位,输出结果 for(int i=lenc; i>=1; i--) cout<<c[i]; cout<<endl; return 0; } /* 9758 567 */ ```
by tomxi @ 2024-02-21 14:52:00


我这么做复杂度是线性的,$\max(|A|,|B|)$
by tomxi @ 2024-02-21 14:53:27


@[2023hkm](/user/1240717) @[tomxi](/user/929151) 都看了,以关,谢谢!
by lucy2012 @ 2024-02-21 14:54:55


| 下一页