【CSDN|每日一练】c++难题-大数加法
【摘要】 运行结果 题目描述大数一直是一个c语言的一个难题。 现在我们需要你手动模拟出大数加法过程。 请你给出两个大整数加法结果。 输入描述:第一行输入整数n,第二行输入整数m。 (1<=number<=1e100) 输出描述:输出两数加和。 示例 代码完整代码#include <iostream>#include <string>#include <algorithm>using namespac...

运行结果

题目描述
大数一直是一个c语言的一个难题。 现在我们需要你手动模拟出大数加法过程。 请你给出两个大整数加法结果。
输入描述:
第一行输入整数n,第二行输入整数m。 (1<=number<=1e100)
输出描述:
输出两数加和。
示例

代码
完整代码
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
string add(string num1, string num2) {
int carry = 0;
string result = "";
// 反转字符串,方便从低位到高位进行计算
reverse(num1.begin(), num1.end());
reverse(num2.begin(), num2.end());
// 从低位到高位进行加法运算
for (int i = 0; i < max(num1.length(), num2.length()); i++) {
int digit1 = i < num1.length() ? num1[i] - '0' : 0;
int digit2 = i < num2.length() ? num2[i] - '0' : 0;
int sum = digit1 + digit2 + carry;
carry = sum / 10;
sum %= 10;
result += to_string(sum);
}
// 如果还有进位,需要在结果最高位加1
if (carry) {
result += to_string(carry);
}
// 反转字符串,使其变为正常顺序
reverse(result.begin(), result.end());
return result;
}
int main() {
string num1, num2;
cin >> num1 >> num2;
cout << add(num1, num2) << endl;
return 0;
}
运行结果

结语
Hello!
非常感谢您阅读海轰的文章,倘若文中有错误的地方,欢迎您指出~
ଘ(੭ˊᵕˋ)੭
昵称:海轰
标签:程序猿|C++选手|学生
简介:因C语言结识编程,随后转入计算机专业,获得过国家奖学金,有幸在竞赛中拿过一些国奖、省奖…已保研
学习经验:扎实基础 + 多做笔记 + 多敲代码 + 多思考 + 学好英语!
唯有努力💪

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)