超长整数的加减运算 C++,编写函数,运用字符串实现两个超长正整数的加法,但不使用 <algorithm>
时间: 2024-03-14 07:45:43 浏览: 20
以下是C++中实现两个超长正整数的加法的函数示例代码,不使用 `<algorithm>`:
```c++
#include <iostream>
#include <string>
using namespace std;
string add(string num1, string num2) {
string sum = "";
int len1 = num1.size(), len2 = num2.size();
int carry = 0, i = len1 - 1, j = len2 - 1;
while (i >= 0 || j >= 0 || carry) {
int digit1 = i < 0 ? 0 : num1[i] - '0';
int digit2 = j < 0 ? 0 : num2[j] - '0';
int s = digit1 + digit2 + carry;
carry = s / 10;
s %= 10;
sum = to_string(s) + sum;
i--;
j--;
}
return sum;
}
int main() {
string num1, num2;
cin >> num1 >> num2;
cout << add(num1, num2) << endl;
return 0;
}
```
在这个函数中,我们使用 `while` 循环来遍历两个字符串的每一位,并且用变量 `carry` 来表示进位。在每一轮循环中,我们将当前位的和加入到结果字符串 `sum` 的前面。最后返回 `sum` 即可。
在主函数中,我们使用 `cin` 函数获取两个字符串,并输出它们的和。注意,在输出结果时,我们需要使用 `endl` 函数来换行。