专栏文章
题解:P1601 A+B Problem(高精)
P1601题解参与者 7已保存评论 7
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 7 条
- 当前快照
- 1 份
- 快照标识符
- @miotgsb0
- 此快照首次捕获于
- 2025/12/03 00:52 3 个月前
- 此快照最后确认于
- 2025/12/03 00:52 3 个月前
所谓高精度加法,便是将数字运算转换为字符串运算的体现。
思路解读
首先,预处理一下两个字符串,将长度更短的那个数字补上 使得其长度与较长的数字相同。
接着,从高到低进行加法运算,就像我们小学学习的竖式加法一样。将每一位的运算结果储存到答案串中,从高到低输出。
代码实现
马蜂可能有点丑,请见谅。
CPP#include <bits/stdc++.h>
using namespace std;
string add(string s1,string s2){
string s;//答案串。
int len1=s1.length();
int len2=s2.length();
if(len1<len2){//预处理补位。
for(int i=1;i<=len2-len1;i++){
s1="0"+s1;
}
}else{
for(int i=1;i<=len1-len2;i++){
s2="0"+s2;
}
}
len1=s1.length();
int cf=0,temp;
for(int i=len1-1;i>=0;i--){//处理答案。
temp=s1[i]-'0'+s2[i]-'0'+cf;
cf=temp/10;
temp%=10;
str=char(temp+'0')+s;
}
if(cf!=0){
str=char(cf+'0')+s;
}
return s;
}
string s1,s2;
int main(){
cin>>s1>>s2;
cout<<add(s1,s2);
return 0;
}
完结撒花?
题外话
其实 Python 是自带高精度的,所以我们也能用 Python 写出非常简短的代码。
PYTHONa=input()
b=input()
a=int(a)
b=int(b)
print(a+b)
update:2025.10.9 免责声明:本人代码中掺杂了防作弊部分,并非出错。
相关推荐
评论
共 7 条评论,欢迎与作者交流。
正在加载评论...