数据结构课程设计作品任意长整数的加法运算并且附上代码
时间: 2023-07-07 18:14:59 浏览: 140
以下是使用C++语言实现任意长整数的加法运算的代码:
```cpp
#include <iostream>
#include <cstring>
using namespace std;
const int MAXN = 1000; // 数组最大长度
struct BigInteger {
int val[MAXN];
int len;
// 构造函数
BigInteger() {
memset(val, 0, sizeof(val));
len = 0;
}
// 将字符串转换为大整数
BigInteger(char str[]) {
memset(val, 0, sizeof(val));
int len = strlen(str);
for (int i = 0; i < len; i++) {
val[i] = str[len - i - 1] - '0';
}
this->len = len;
}
// 大整数加法
BigInteger operator + (const BigInteger &b) const {
BigInteger res;
res.len = 0;
int carry = 0; // 进位
for (int i = 0; i < max(len, b.len); i++) {
int tmp = val[i] + b.val[i] + carry;
res.val[res.len++] = tmp % 10;
carry = tmp / 10;
}
if (carry) {
res.val[res.len++] = carry;
}
return res;
}
// 输出大整数
void output() {
for (int i = len - 1; i >= 0; i--) {
cout << val[i];
}
cout << endl;
}
};
int main() {
char str1[MAXN], str2[MAXN];
cin >> str1 >> str2;
BigInteger a(str1), b(str2);
BigInteger c = a + b;
c.output();
return 0;
}
```
在这个程序中,我们定义了一个结构体 `BigInteger`,用于存储任意长整数。其中,`val` 数组用来存储每一位的数值,`len` 表示整数的位数。
我们还定义了一个构造函数,用于将字符串转换为大整数。在大整数加法运算中,我们重载了 `+` 运算符,用于对两个大整数进行加法运算。最后,我们还定义了一个 `output` 函数,用于输出大整数。
在主函数中,我们首先通过 `cin` 输入两个任意长整数,然后将它们转换为 `BigInteger` 类型的变量,并对它们进行加法运算。最后,我们通过 `output` 函数输出结果。
以上就是本程序的实现过程,可以在编译器中运行并测试。
阅读全文