用JAVA生成50道100以内的加减法算式,要求算式不可重复出现,并且将加法算式和减法算式的产生模块进行分离
时间: 2024-10-09 14:08:05 浏览: 74
在Java中,我们可以创建两个独立的模块,一个用于生成加法算式,另一个用于生成减法算式。为了确保100以内的算式不重复,我们可以在生成算式时,使用随机数生成加上或减去的数字,然后检查结果是否已经存在。这里提供一个简单的示例:
```java
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Random;
public class MathGenerator {
private static final int MAX_NUM = 100;
private static HashSet<Integer> resultSet = new HashSet<>();
// 加法算式生成器
public static ArrayList<String> generateAddition(int n) {
ArrayList<String> formulas = new ArrayList<>();
Random random = new Random();
for (int i = 0; i < n; i++) {
int a = random.nextInt(MAX_NUM);
int b = random.nextInt(MAX_NUM - a); // 防止b大于a导致无法生成合法算式
int sum = a + b;
if (!resultSet.contains(sum)) {
String formula = "a + b = " + sum;
formulas.add(formula);
resultSet.add(sum);
}
}
return formulas;
}
// 减法算式生成器
public static ArrayList<String> generateSubtraction(int n) {
ArrayList<String> formulas = new ArrayList<>();
Random random = new Random();
for (int i = 0; i < n; i++) {
int maxSub = MAX_NUM - random.nextInt(MAX_NUM);
int a = random.nextInt(maxSub + 1);
int difference = MAX_NUM - a;
if (!resultSet.contains(difference)) {
String formula = "a - b = " + difference;
formulas.add(formula);
resultSet.add(difference);
}
}
return formulas;
}
}
// 使用示例
public class Main {
public static void main(String[] args) {
int additionCount = 25, subtractionCount = 25;
ArrayList<String> addFormulas = MathGenerator.generateAddition(additionCount);
ArrayList<String> subFormulas = MathGenerator.generateSubtraction(subtractionCount);
System.out.println("加法算式:");
for (String formula : addFormulas) {
System.out.println(formula);
}
System.out.println("\n减法算式:");
for (String formula : subFormulas) {
System.out.println(formula);
}
}
}
```
在这个例子中,`generateAddition` 和 `generateSubtraction` 分别负责生成加法和减法算式,并通过`resultSet`来跟踪结果,确保每个算式都是唯一的。
阅读全文