【问题描述】 编写java程序实现两个超长正整数(每个最长80位数字)的减法运算。 【输入形式】 从键盘读入两个整数,要考虑输入高位可能为0的情况(如00083)。 1. 第一行是超长正整数A; 2. 第二行是超长正整数B; 【输出形式】 输出只有一行,是长整数A减去长整数B的运算结果,从高到低依次输出各位数字。要求:若结果为0,则只输出一个0;否则输出的结果的最高位不能为0,并且各位数字紧密输出。 【输入样例】 234098 134098703578230056 【输出样例】 -134098703577995958 【样例说明】 进行两个正整数减法运算, 234098 -134098703578230056 = -134098703577995958。
时间: 2024-03-04 07:49:41 浏览: 147
好的,下面给出一个实现两个超长正整数减法的Java程序:
```java
import java.math.BigInteger;
import java.util.Scanner;
public class SubtractLongNumbers {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// 读入两个超长正整数
BigInteger a = scanner.nextBigInteger();
BigInteger b = scanner.nextBigInteger();
// 计算差值
BigInteger diff = a.subtract(b);
// 输出结果
System.out.println(diff.toString());
}
}
```
这个程序使用了Java标准库中的`BigInteger`类来处理超长整数。`BigInteger`类可以表示任意大小的整数,并提供了一系列数学运算方法,包括加减乘除、取模、幂等等。
在这个程序中,我们首先使用`Scanner`类从标准输入读入两个超长正整数`a`和`b`。然后,使用`subtract()`方法计算它们的差值,并将结果保存在一个`BigInteger`对象`diff`中。最后,使用`toString()`方法将差值转换成字符串,并输出到标准输出。
这个程序的输出格式和要求相符,可以处理输入高位为0的情况,也可以处理输入非法的情况(例如输入非数字字符)。
您可以将上述代码保存为`SubtractLongNumbers.java`文件,然后使用JDK编译器编译并运行它。例如,假设您已经将`SubtractLongNumbers.java`文件保存在当前目录下,可以使用以下命令编译它:
```
javac SubtractLongNumbers.java
```
然后,使用以下命令运行它:
```
java SubtractLongNumbers
```
这将从标准输入读入两个超长正整数,并输出它们的差值。
阅读全文