c++怎么利用字符串将两个极大的整数相加
时间: 2023-11-22 12:54:18 浏览: 68
在C++中,可以使用字符串类(string)来操作大整数。实现两个大整数的相加可以按照以下步骤进行:
1. 将两个大整数转化为字符串类型。
2. 将两个字符串的长度补齐,即在短的字符串前面添加0,使得两个字符串的长度相等。
3. 从字符串的末尾开始,依次将对应位上的数字相加,并将结果存储在新的字符串中。需要注意的是,如果相加的结果大于等于10,则需要进位。
4. 将得到的新的字符串反转,即可得到最终的结果。
下面是一个简单的示例代码:
```c++
#include <iostream>
#include <string>
using namespace std;
string add(string num1, string num2) {
string res = "";
int carry = 0, i = num1.size() - 1, j = num2.size() - 1;
while (i >= 0 || j >= 0 || carry) {
int n1 = i >= 0 ? num1[i--] - '0' : 0;
int n2 = j >= 0 ? num2[j--] - '0' : 0;
int sum = n1 + n2 + carry;
carry = sum >= 10 ? 1 : 0;
res += to_string(sum % 10);
}
reverse(res.begin(), res.end());
return res;
}
int main() {
string num1 = "12345678901234567890";
string num2 = "98765432109876543210";
cout << add(num1, num2) << endl;
return 0;
}
```
在上述代码中,add函数接受两个字符串类型的参数,返回它们的和。carry变量表示进位,用i和j指针从字符串末尾开始遍历,依次相加。最后,将得到的结果字符串反转即可。
阅读全文