使用整型数组类实现两个任意长度的整数的大小对比
时间: 2023-07-14 14:13:39 浏览: 85
以下是使用整型数组类实现两个任意长度的整数的大小对比的示例代码:
```java
public class BigInt {
private int[] digits;
private int size;
public BigInt(String number) {
size = number.length();
digits = new int[size];
for (int i = 0; i < size; i++) {
digits[i] = Character.getNumericValue(number.charAt(i));
}
}
public boolean isGreaterThan(BigInt other) {
if (size > other.size) {
return true;
} else if (size < other.size) {
return false;
} else {
for (int i = 0; i < size; i++) {
if (digits[i] > other.digits[i]) {
return true;
} else if (digits[i] < other.digits[i]) {
return false;
}
}
return false;
}
}
}
```
在上面的代码中,我们定义了一个 BigInt 类,它包含一个整型数组 digits 和一个整数 size,digits 数组用来存储输入的大整数的每一位数字,size 表示这个大整数的位数。
我们使用构造函数来初始化 BigInt 类的对象,构造函数接受一个字符串参数,字符串中的每个字符都被转换成整数并存储到 digits 数组中。
我们还定义了一个 isGreaterThan 方法,用于比较两个 BigInt 类对象的大小。如果当前对象的 size 大于另一个对象的 size,则当前对象大;如果当前对象的 size 小于另一个对象的 size,则当前对象小;如果两个对象的 size 相等,则从高位到低位逐位比较,如果当前对象的某一位数字大于另一个对象的相应位,则当前对象大;如果当前对象的某一位数字小于另一个对象的相应位,则当前对象小;如果两个对象的所有数字都相等,则认为它们相等。
例如,我们可以使用以下代码创建两个 BigInt 类对象,并比较它们的大小:
```java
BigInt num1 = new BigInt("1234567890");
BigInt num2 = new BigInt("9876543210");
if (num1.isGreaterThan(num2)) {
System.out.println("num1 is greater than num2");
} else {
System.out.println("num1 is not greater than num2");
}
```
输出结果将为 "num1 is not greater than num2",因为 num2 的 size 大于 num1 的 size。
阅读全文