编写java程序实现两个超长正整数(每个最长80位数字)的加法和乘法运算。 【输入形式】从当前目录下的plus.in文件读入以下内容: 1. 第一行是超长正整数A; 2. 第二行只有一个字符"+"或"*",分别代表加、乘运算; 3. 第三行是超长正整数B。 【输出形式】输出到当前目录下的plus.out文件中。输出只有一行,是两个长整数的运算结果,从高到低依次输出各位数字。各位数字紧密输出,不带有前缀的多余的0。 在行尾要输出一个回车符。 【输入文件】假设输入文件plus.in的内容如下: 13409870 * 234098 【输出文件】输出文件plus.out的内容如下: 3139223747260 【样例说明】进行两个正整数进行乘法运算,13409870 * 234098 = 3139223747260。
时间: 2024-03-14 09:46:52 浏览: 105
好的,这是一个大数运算问题,我可以帮你写一个Java程序来解决它。以下是代码:
```java
import java.io.File;
import java.io.FileNotFoundException;
import java.io.PrintWriter;
import java.math.BigInteger;
import java.util.Scanner;
public class LongInt {
public static void main(String[] args) throws FileNotFoundException {
Scanner input = new Scanner(new File("plus.in"));
String aStr = input.nextLine();
String op = input.nextLine();
String bStr = input.nextLine();
input.close();
BigInteger a = new BigInteger(aStr);
BigInteger b = new BigInteger(bStr);
BigInteger result;
if (op.equals("+")) {
result = a.add(b);
} else {
result = a.multiply(b);
}
PrintWriter output = new PrintWriter(new File("plus.out"));
output.println(result);
output.close();
}
}
```
这个程序首先从文件"plus.in"中读取三行输入,分别是两个超长正整数A和B,以及运算符号"+"或"*"。然后使用Java中的BigInteger类来进行大数运算,根据运算符号选择执行加法或乘法操作。最后将结果输出到文件"plus.out"中。
需要注意的是,由于超长正整数可能超过了Java中long类型的表示范围,我们需要使用BigInteger类来进行运算。BigInteger类提供了add和multiply方法来执行加法和乘法操作。
希望这个程序能够满足你的需求。
阅读全文