AC
2025-11-02 21:14:53
发布于:福建
2阅读
0回复
0点赞
#include <bits/stdc++.h>
using namespace std;
string s1 , s2;//高精度数值
long long a[101];//s1的转换
long long b[101];//s2的转换
long long c[101];//高精度a+b的和
//把字符串变成数字
void strtoint(string src , long long des[]) {
for (int i = 0 ; i < src.length() ; i++) {
des [src.length() - i] = src[i] - '0';
}
}
int main( ) {
cin >> s1 >> s2;//读入两个高精度的数字
if (s1 == "0" && s2 == "0") {
cout << "0" << endl;
}//如果两数都是0输出0
//转数字操作
strtoint(s1 , a);
strtoint(s2 , b);
long long la = s1.length();
long long lb = s2.length();
//计算c数组的长度
long long lc = max(la , lb) + 1;
//对位相加得出c数组
for (int i = 1 ; i <= lc ; i++) {
c[i] = a[i] + b[i] + c[i];//进位
c[i + 1] = c[i] / 10;//进位
c[i] %= 10;//留下个位
}
while(c[lc] == 0 && lc > 0){
lc--;
}
//倒序输出
for (int i = lc ; i >= 1 ; i--) {
cout << c[i];
}
return 0;
}
这里空空如也


有帮助,赞一个