用C++编写12345789012345789012+12两个数组相加的值
时间: 2024-05-10 13:17:06 浏览: 83
以下是用C++编写的代码:
```c++
#include <iostream>
#include <vector>
using namespace std;
int main() {
vector<int> num1 = {1, 2, 3, 4, 5, 7, 8, 9, 0, 1, 2, 3, 4, 5, 7, 8, 9, 0, 1, 2};
vector<int> num2 = {1, 2};
vector<int> result;
int carry = 0;
int i = num1.size() - 1;
int j = num2.size() - 1;
while (i >= 0 || j >= 0) {
int sum = carry;
if (i >= 0) {
sum += num1[i];
i--;
}
if (j >= 0) {
sum += num2[j];
j--;
}
result.push_back(sum % 10);
carry = sum / 10;
}
if (carry != 0) {
result.push_back(carry);
}
cout << "Result: ";
for (int i = result.size() - 1; i >= 0; i--) {
cout << result[i];
}
cout << endl;
return 0;
}
```
该代码使用了vector来存储数组的每一位数字,使用了类似手算加法的方法来计算结果。首先将进位carry初始化为0,然后从数组num1和num2的末尾开始遍历,将当前位的数字相加并加上上一次的进位carry。如果还有数字需要相加,则将i和j分别减1。将相加结果的个位数加入结果数组result中,并将十位数作为下一次的进位carry。最后,如果最高位有进位,则将进位加入结果数组中。最后遍历结果数组并输出结果。
阅读全文