任意长整数的加法运算数据结构课程设计作品并且附代码
时间: 2023-07-07 18:14:59 浏览: 91
以下是使用C++语言实现任意长整数加法运算的代码:
```cpp
#include<bits/stdc++.h>
using namespace std;
string add(string str1, string str2) {
int len1 = str1.size(), len2 = str2.size();
int len = max(len1, len2);
string res(len + 1, '0');
int carry = 0;
for (int i = 0; i < len; i++) {
int a = i < len1 ? str1[len1 - i - 1] - '0' : 0;
int b = i < len2 ? str2[len2 - i - 1] - '0' : 0;
int sum = a + b + carry;
carry = sum / 10;
res[len - i] = sum % 10 + '0';
}
if (carry) {
res[0] = carry + '0';
} else {
res.erase(res.begin());
}
return res;
}
int main() {
string str1, str2;
getline(cin, str1);
getline(cin, str2);
string sum = add(str1, str2);
cout << sum << endl;
return 0;
}
```
本程序使用 `string` 类型存储任意长整数,并通过 `getline()` 函数读入两个任意长整数。我们通过比较两个字符串的长度,找出较长的字符串,并将其长度作为新字符串的长度。然后,我们从低位到高位进行逐位相加,将每一位的结果存储在新字符串中。
在计算每一位的结果时,我们需要考虑到进位的情况。如果当前位的和大于等于10,则需要进位,并将进位后的结果存储在下一位中。最后,我们将新字符串的前导零去除,得到两个任意长整数的和。
以上就是本程序的实现过程,可以在编译器中运行并测试。
阅读全文