两数相加代码大数据c++输入两个数
以下是一个处理大数据相加的C++代码示例:
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
// 大数相加函数
string add(string num1, string num2) {
// 保证num1的长度不小于num2
if (num1.length() < num2.length()) {
swap(num1, num2);
}
int carry = 0; // 进位值
int len1 = num1.length();
int len2 = num2.length();
// 将num1、num2转换为逆序的字符数组
reverse(num1.begin(), num1.end());
reverse(num2.begin(), num2.end());
// 逐位相加
string sum = "";
for (int i = 0; i < len1; i++) {
int digit1 = num1[i] - '0';
int digit2 = i < len2 ? num2[i] - '0' : 0;
int temp = digit1 + digit2 + carry;
sum += (temp % 10) + '0'; // 将计算结果添加到sum中
carry = temp / 10; // 更新进位值
}
// 处理最高位的进位
if (carry > 0) {
sum += carry + '0';
}
// 将sum逆序得到最终结果
reverse(sum.begin(), sum.end());
return sum;
}
int main() {
string num1, num2;
cout << "请输入两个大数:" << endl;
cin >> num1 >> num2;
string result = add(num1, num2);
cout << "相加结果:" << result << endl;
return 0;
}
在上述代码中,我们定义了一个add函数来处理大数据相加。在函数中,我们首先比较两个数字的长度,并保证num1的长度不小于num2。然后,我们将num1和num2转换为逆序的字符数组,并使用一个循环逐位相加。在每一位的相加过程中,我们还需要考虑进位的情况。最后,我们将计算得到的结果逆序输出。在main函数中,我们接受用户输入的两个大数,并调用add函数进行相加并输出结果
原文地址: https://www.cveoy.top/t/topic/ihd9 著作权归作者所有。请勿转载和采集!