gordon321 @ 2023-08-12 16:25:52
#include<bits/stdc++.h>
using namespace std;
int main(){
string a;
string b;
cin>>a;
cin>>b;
int c[1000]={0};
int jy=0;
int sw=0;
int x=a.length()-1;
int y=b.length()-1;
for(int i=0;i<max(a.length(),b.length())+1;i++){
if(i==max(a.length(),b.length())){
if(jy==0){
continue;
}else{
c[i]=jy;
continue;
}
}
if(a.length()>b.length()&&i>=b.length()){
c[i]=(a[x]-48+jy)%10;
if(a[x]-48+jy>=10){
jy=(a[x]-48+jy)/10;
}else{
jy=0;
}
}else if(a.length()<b.length()&&i>=a.length()){
c[i]=(b[y]-48+jy)%10;
if(b[y]-48+jy>=10){
jy=(b[y]-48+jy)/10;
}else{
jy=0;
}
}else{
c[i]=(a[x]-48+b[x]-48+jy)%10;
if(a[x]-48+b[x]-48+jy>=10){
jy=(a[x]-48+b[y]-48+jy)/10;
}else{
jy=0;
}
}
x--;
y--;
sw++;
}
for(int i=sw;i>=0;i--){
if(i==sw&&c[i]==0){
}else{
cout<<c[i];
}
}
return 0;
}
by Tanleyan @ 2023-08-19 16:43:11
这么简单,为什么要搞这么复杂,附上代码
#include<cstdio>
using namespace std;
int main()
{
int a,b,c;
scanf("%d%d",&a,&b);
c=a+b;
printf("%d",c);
return 0;
}
by Tanleyan @ 2023-08-19 16:44:58
@gordon321 ,你试试我的,我这是AC
by sapo1o @ 2023-08-19 20:20:32
@ouyangluoxi 额,我们在讨论高精度算法
by Jason_Ming @ 2023-08-22 11:36:53
其实,我觉得这道题不用高精吧,直接a+b不就行了
by peijunshuo_9961 @ 2023-08-23 14:24:12
#include<bits/stdc++.h>
using namespace std;
int main(){
int a,b;
cin>>a>>b;
cout<<a+b;
by peijunshuo_9961 @ 2023-08-23 14:25:00
不用谢
by __youzimo2014__ @ 2023-08-28 11:31:45
有负数,而且有专门的高精度题目,这个题目只是普普通通的a+b
by DBL_MAX @ 2023-08-31 19:32:53
@gordon321 其实这个题不用高精度也能过的。 就像我这样:
#include<iostream>
using namespace std;
int main()
{
long long a,b;
cin>>a>>b;
cout<<a+b;
}
其实这道题的数据里面有负数,普通高精度会 RE
,所以我刚才那种是最简单的(要不然这道题也不会是红题)。这个才是高精度的 A+B
。
by DBL_MAX @ 2023-08-31 19:33:55
@peijunshuo_9961 你这个得 CE
呀,主函数没有花括号结束
by peijunshuo_9961 @ 2023-08-31 20:48:38
哦