yuki_lyq @ 2024-07-05 21:30:12
by NC20061226 @ 2024-07-05 21:38:00
代码呢?
by hongche @ 2024-07-05 21:39:21
#include<bits/stdc++.h>
using namespace std;
int a[1005],b[1005],c[505];
int main(){
string s1,s2;
cin>>s1;
cin>>s2;
int k=s1.size();
int l=s2.size();
int x=1;
for(int i=k-1;i>=0;i--){
a[x]=s1[i]-'0';
x++;
}
x=1;
for(int i=l-1;i>=0;i--){
b[x]=s2[i]-'0';
x++;
}
int r=0;
int ll=max(k,l);
for(int i=1;i<=ll;i++){
c[i]=a[i]+b[i]+r;
if(c[i]>=10){
r=1;
c[i]=c[i]%10;
}else{
r=0;
}
}
if(r==1){
c[++ll]=r;
}
while(c[ll]==0){
ll--;
}
for(int i=ll;i>=1;i--){
cout<<c[i];
}
return 0;
}
这是高精度的板子
by hongche @ 2024-07-05 21:39:53
壶关吗
by gavinliu266 @ 2024-07-05 21:42:26
没有处理负数
by hongche @ 2024-07-05 21:42:52
代码中包含多余信息
40分
by gavinliu266 @ 2024-07-05 21:43:03
@yuki_lyq
by Max_robot @ 2024-07-07 15:31:06
这题不用高精...
by DreamFlyboat @ 2024-07-07 21:50:08
如果你要用高精度的话可以试试介样
#include<bits/stdc++.h>
using namespace std;
string s1,s2,s3;
int l1,l2;
int a,b,c,j;
char ch;
int main()
{
cin>>s1>>s2;
l1=s1.size();l2=s2.size();
if(l1<l2) {swap(s1,s2);swap(l1,l2);}
for(int i=1;i<=l1-l2;i++) s2='0'+s2;
j=0;
for(int i=l1-1;i>=0;i--)
{
a=s1[i]-'0';
b=s2[i]-'0';
c=a+b+j;
if(c>=10) {c=c-10;j=1;}
else j=0;
ch=char(c+'0');
s3=ch+s3;
}
if(j==1) s3='1'+s3;
cout<<s3;
return 0;
}
高精度模版
by DreamFlyboat @ 2024-07-07 21:54:54
简单一点可以这样
#include<bits/stdc++.h>
using namespace std;
int a,b;//定义,可以int一个c
//int c;
int main(){
cin>>a>>b;//输入
//c=a+b;cout<<c;这样更好,不容易出错
cout<<a+b;//直接输出简洁明了
return 0;
}
不用高精度
by zihao0505 @ 2024-07-13 12:36:31
直接a+b不行吗