创建 Hugelnteger(大整数)类,用一个具有40个元素的数字数组存放最多40位的整数。提供成员函数input(输入)、output(输出)、ada(加)和 substract(减)。为了比较Fugelnteger对象,提供函数iEqmalTo(是等于)iNoEqualTo(是不等于)、isGreaterThan(是大于isLessThan(是小于)isGreaterThanOrEqualTo是大于等于)和isLessThanOrEqualTo(是小于等于万,这几个函数每个都是“判定”函数,如果两个Hugelmteger对象间关系成立,则返回true;如果关系不成立、则返包false。另外,该类还提供判定函数isZero(是零)。如果有兴趣,可以继续提供成员函数maltiply(乘入、divide(除)和modulus(取模)。
时间: 2024-01-18 15:03:10 浏览: 60
HugeInteger:创建一个服务HugeInteger,该服务使用40个元素的数字数组存储每个最大40位数字的整数。 提供解析,toString,加法和减法的方法。 方法解析应该接收一个字符串,使用charAt方法提取每个数字,并将每个数字的整数等值放入整数数组。 为了比较HugeInteger对象,请提供以下方法
好的,我明白了你的问题。以下是一个基本的Hugelnteger类的实现,包括输入、输出、加、减和比较函数:
```
#include <iostream>
#include <cstring>
using namespace std;
class Hugelnteger {
private:
int digits[40];
public:
Hugelnteger() {
memset(digits, 0, sizeof(digits));
}
void input() {
string str;
cin >> str;
int len = str.length();
for (int i = 0; i < len; i++) {
digits[40 - len + i] = str[i] - '0';
}
}
void output() {
int i = 0;
while (digits[i] == 0 && i < 39) {
i++;
}
for (; i < 40; i++) {
cout << digits[i];
}
cout << endl;
}
void add(Hugelnteger num) {
int carry = 0;
for (int i = 39; i >= 0; i--) {
int sum = digits[i] + num.digits[i] + carry;
digits[i] = sum % 10;
carry = sum / 10;
}
}
void subtract(Hugelnteger num) {
int borrow = 0;
for (int i = 39; i >= 0; i--) {
int diff = digits[i] - num.digits[i] - borrow;
if (diff < 0) {
diff += 10;
borrow = 1;
} else {
borrow = 0;
}
digits[i] = diff;
}
}
bool isEqualTo(Hugelnteger num) {
for (int i = 0; i < 40; i++) {
if (digits[i] != num.digits[i]) {
return false;
}
}
return true;
}
bool isNotEqualTo(Hugelnteger num) {
return !isEqualTo(num);
}
bool
阅读全文